From dd78d7c7724e4da4b6f44f0483f0d28792c8f13c Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Fri, 24 Jul 2009 22:41:51 -0400 Subject: 0.7.0 -- refactor to make core a pluggin (not done) --- src/core/init.sh | 29 +++++++++++++ src/core/plugins | 2 + src/core/plugins.d/repo/commit.d.sh | 23 ++++++++++ src/core/plugins.d/repo/commit.f.sh | 24 +++++++++++ src/core/plugins.d/repo/commit.sh | 51 ++++++++++++++++++++++ src/core/plugins.d/repo/get.d.sh | 30 +++++++++++++ src/core/plugins.d/repo/get.f.sh | 20 +++++++++ src/core/plugins.d/repo/get.sh | 32 ++++++++++++++ src/core/plugins.d/repo/lib/stdio.sh | 58 +++++++++++++++++++++++++ src/core/plugins.d/users/mkuser.sh | 24 +++++++++++ src/core/plugins.d/users/rmuser.sh | 14 ++++++ src/core/repo.sh | 26 +++++++++++ src/rvs-core/commit.d.sh | 29 ------------- src/rvs-core/commit.f.sh | 26 ----------- src/rvs-core/commit.sh | 53 ----------------------- src/rvs-core/get.d.sh | 32 -------------- src/rvs-core/get.f.sh | 22 ---------- src/rvs-core/get.sh | 34 --------------- src/rvs-core/init.sh | 18 -------- src/rvs-core/lib/rvsdb.sh | 84 ------------------------------------ src/rvs-core/lib/stdio.sh | 60 -------------------------- src/rvs-core/repo.sh | 29 ------------- src/rvs.sh | 26 ++++++++--- 23 files changed, 353 insertions(+), 393 deletions(-) create mode 100644 src/core/init.sh create mode 100644 src/core/plugins create mode 100644 src/core/plugins.d/repo/commit.d.sh create mode 100644 src/core/plugins.d/repo/commit.f.sh create mode 100644 src/core/plugins.d/repo/commit.sh create mode 100644 src/core/plugins.d/repo/get.d.sh create mode 100644 src/core/plugins.d/repo/get.f.sh create mode 100644 src/core/plugins.d/repo/get.sh create mode 100644 src/core/plugins.d/repo/lib/stdio.sh create mode 100644 src/core/plugins.d/users/mkuser.sh create mode 100644 src/core/plugins.d/users/rmuser.sh create mode 100644 src/core/repo.sh delete mode 100644 src/rvs-core/commit.d.sh delete mode 100644 src/rvs-core/commit.f.sh delete mode 100644 src/rvs-core/commit.sh delete mode 100644 src/rvs-core/get.d.sh delete mode 100644 src/rvs-core/get.f.sh delete mode 100644 src/rvs-core/get.sh delete mode 100644 src/rvs-core/init.sh delete mode 100644 src/rvs-core/lib/rvsdb.sh delete mode 100644 src/rvs-core/lib/stdio.sh delete mode 100644 src/rvs-core/repo.sh (limited to 'src') diff --git a/src/core/init.sh b/src/core/init.sh new file mode 100644 index 0000000..dc8a750 --- /dev/null +++ b/src/core/init.sh @@ -0,0 +1,29 @@ +#!$$SHELL$$ +name='rvs init' +ver='0.7.0' +# Copyright (C) 2009 Luke Shumaker +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# Originally written by Luke Shumaker . + +repo=`rvs repo` +if [ "$old" = '' ]; then + repo='.rvs' + install -d "$repo" +fi + +if diff -q $RVSDIR/plugins $repo/plugins; then + install -T $RVSDIR/plugins $repo/plugins + while read plugin; do + if [ ! -e "$repo/$plugin" ]; then + install -d "$repo/$plugin" + if [ -e "$RVSDIR/$plugin/init" ]; then + $RVSDIR/$plugin/init + fi + fi + done < $repo/plugins +fi + diff --git a/src/core/plugins b/src/core/plugins new file mode 100644 index 0000000..18b388a --- /dev/null +++ b/src/core/plugins @@ -0,0 +1,2 @@ +repo +users diff --git a/src/core/plugins.d/repo/commit.d.sh b/src/core/plugins.d/repo/commit.d.sh new file mode 100644 index 0000000..5b2d3fd --- /dev/null +++ b/src/core/plugins.d/repo/commit.d.sh @@ -0,0 +1,23 @@ +#!$$SHELL$$ +name='rvs commit.d' +ver='0.7.0' +# Copyright (C) 2009 Luke Shumaker +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# Originally written by Luke Shumaker . + +# commit.d DIRNAME +dir="$1" + +tmp=`tempfile` +for file in $dir/*; do + hash=`rvs commit "$file"` + echo "$file:$hash" >> "$tmp" +done + +rvs commit.f "$tmp" +rm "$tmp" + diff --git a/src/core/plugins.d/repo/commit.f.sh b/src/core/plugins.d/repo/commit.f.sh new file mode 100644 index 0000000..915ba3c --- /dev/null +++ b/src/core/plugins.d/repo/commit.f.sh @@ -0,0 +1,24 @@ +#!$$SHELL$$ +name='rvs commit.f' +ver='0.7.0' +# Copyright (C) 2009 Luke Shumaker +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# Originally written by Luke Shumaker . + +source "$RVSDIR/lib/stdio" +source "$RVSDIR/lib/rvsdb" + +# commit.f FILENAME +file="$1" + +#hash=`md5sum $file | sed "s/ .*$//"` +hash=`sha1sum $file | sed "s/ .*$//"` +if [ ! -f "`rvs repo`/files/$hash" ]; then + install -m 644 -o $USER -g $USER -T "$file" "`rvs repo`/files/$hash" +fi +echo "$hash" + diff --git a/src/core/plugins.d/repo/commit.sh b/src/core/plugins.d/repo/commit.sh new file mode 100644 index 0000000..0c8cfc5 --- /dev/null +++ b/src/core/plugins.d/repo/commit.sh @@ -0,0 +1,51 @@ +#!$$SHELL$$ +name='rvs commit' +ver='0.7.0' +# Copyright (C) 2009 Luke Shumaker +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# Originally written by Luke Shumaker . + +source "$RVSDIR/lib/stdio" + +# commit FILE +if [ $# -gt 0 ]; then + file="$1" +else + file='.' +fi + +warn "$file" + +if [ ! -e $file ]; then error "file \`$file' does not exist"; +# START file type list +elif [ -L $file ]; then type='l'; # symbolic link +elif [ -b $file ]; then type='b'; # block (buffered) special +elif [ -c $file ]; then type='c'; # character (unbuffered) special +elif [ -d $file ]; then type='d'; # directory +elif [ -p $file ]; then type='p'; # named pipe (FIFO) +elif [ -f $file ]; then type='f'; # regular file +elif [ -s $file ]; then type='s'; # socket +#elif [ -D $file ]; type='D'; # door (Solaris only) +# END file type list +else error "could not identify file type of \`$file'" +fi + +ret=`rvs "commit.$type" "$file"` + +tmp=`tempfile` +cat << __EOF__ > "$tmp" +name:$file +hash:$ret +type:$type +author:$user +owner:$owner +license:$license +__EOF__ + +rvs commit.f "$tmp" +rm "$tmp" + diff --git a/src/core/plugins.d/repo/get.d.sh b/src/core/plugins.d/repo/get.d.sh new file mode 100644 index 0000000..2443850 --- /dev/null +++ b/src/core/plugins.d/repo/get.d.sh @@ -0,0 +1,30 @@ +#!$$SHELL$$ +name='rvs get.d' +ver='0.7.0' +# Copyright (C) 2009 Luke Shumaker +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# Originally written by Luke Shumaker . + +#source "$RVSDIR/lib/stdio" +source "$RVSDIR/lib/rvsdb" + +# get.d ID DIRNAME +id="$1" +dir="$2" + +tmp=`tempfile` +rvs get.f `logread "$db" 'hash'` "$tmp" + +mkdir "$dir" +while read line; do + hash=`echo "$line" | sed 's/^.*://'` + name=`echo "$line" | sed "s/:$hash$//"` + rvs get "$dir/$file" +done < "$tmp" + +rm "$tmp" + diff --git a/src/core/plugins.d/repo/get.f.sh b/src/core/plugins.d/repo/get.f.sh new file mode 100644 index 0000000..e631a1f --- /dev/null +++ b/src/core/plugins.d/repo/get.f.sh @@ -0,0 +1,20 @@ +#!$$SHELL$$ +name='rvs get.f' +ver='0.7.0' +# Copyright (C) 2009 Luke Shumaker +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# Originally written by Luke Shumaker . + +source "$RVSDIR/lib/stdio" +source "$RVSDIR/lib/rvsdb" + +# get.f ID FILENAME +id="$1" +file="$2" + +cp "`rvs repo`/files/$id" "$file" + diff --git a/src/core/plugins.d/repo/get.sh b/src/core/plugins.d/repo/get.sh new file mode 100644 index 0000000..4317c40 --- /dev/null +++ b/src/core/plugins.d/repo/get.sh @@ -0,0 +1,32 @@ +#!$$SHELL$$ +name='rvs get' +ver='0.7.0' +# Copyright (C) 2009 Luke Shumaker +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# Originally written by Luke Shumaker . + +source "$RVSDIR/lib/stdio" +source "$RVSDIR/lib/rvsdb" + +# get ID [FILE] +id="$1" + +if [ $# -gt 1 ]; then + file="$2" +fi + +tmp=`tempfile` +rvs get.f "$id" "$tmp" +type=`logread "$tmp" 'type'` +if [ $# -gt 1 ]; then + file="$2" +else + file=`logread "$tmp" 'name'` +fi + +rvs "get.$type" "$id" "$file" + diff --git a/src/core/plugins.d/repo/lib/stdio.sh b/src/core/plugins.d/repo/lib/stdio.sh new file mode 100644 index 0000000..e6ef31a --- /dev/null +++ b/src/core/plugins.d/repo/lib/stdio.sh @@ -0,0 +1,58 @@ +#!$$SHELL$$ +#name='rvs stdio' +#ver='0.7.0' +# Copyright (C) 2009 Luke Shumaker +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# Originally written by Luke Shumaker . + +verbose() { + if [ "$volume" == '-v' ]; then + echo $@ + fi +} + +out() { + if [ "$volume" != '-q' ]; then + echo $@ + fi +} + +warn () { + echo "$name: $1" >> /dev/stderr +} + +error() { + warn "$1" + cat << __error__ >> /dev/stderr +Usage: $name $usage + +Try \`$name --help\' for more options. +__error__ + exit 1 +} + +fatal () { + warn "$1" + exit 1 +} + +version() { + echo "$name $ver" + if [ "$volume" != '-q' ]; then + cat << __disclaimer__ +$name is copyright (C) 2009 Luke Shumaker +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Originally written by Luke Shumaker . +__disclaimer__ + fi + exit 0 +} + diff --git a/src/core/plugins.d/users/mkuser.sh b/src/core/plugins.d/users/mkuser.sh new file mode 100644 index 0000000..74c8a77 --- /dev/null +++ b/src/core/plugins.d/users/mkuser.sh @@ -0,0 +1,24 @@ +#!$$SHELL$$ +name='rvs mkuser' +ver='0.7.0' +# Copyright (C) 2009 Luke Shumaker +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# Originally written by Luke Shumaker . + +read -p 'username: ' author +read -p 'give copyright to: ' owner +if [ "$owner" != 'Public Domain' ]; then + read -p 'use the license: ' license +else + license='' +fi +cat << __EOF__ > "`rvs repo`/users/$author" +author:$author +owner:$owner +license:$license +__EOF__ + diff --git a/src/core/plugins.d/users/rmuser.sh b/src/core/plugins.d/users/rmuser.sh new file mode 100644 index 0000000..82a71c5 --- /dev/null +++ b/src/core/plugins.d/users/rmuser.sh @@ -0,0 +1,14 @@ +#!$$SHELL$$ +name='rvs rmuser' +ver='0.7.0' +# Copyright (C) 2009 Luke Shumaker +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# Originally written by Luke Shumaker . + +uname=$1 +rm "`rvs repo`/users/$uname" + diff --git a/src/core/repo.sh b/src/core/repo.sh new file mode 100644 index 0000000..a94ccb8 --- /dev/null +++ b/src/core/repo.sh @@ -0,0 +1,26 @@ +#!$$SHELL$$ +name='rvs repo' +ver='0.7.0' +# Copyright (C) 2009 Luke Shumaker +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# Originally written by Luke Shumaker . + +repo='.rvs' +pwd=`pwd` + +while [ "$pwd" != "`pwd`" ] && [ ! -e "`pwd`/$repo" ]; do + pwd=`pwd` + cd .. +done + +if [ -e "`pwd`/$repo" ]; then + echo "`pwd`/$repo" +else + echo "$name: no rvs repository found" >> /dev/stderr + exit 1 +fi + diff --git a/src/rvs-core/commit.d.sh b/src/rvs-core/commit.d.sh deleted file mode 100644 index 7a0cc9a..0000000 --- a/src/rvs-core/commit.d.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!$$SHELL$$ -# abomination module:rvs:commit:d -name='rvs commit.d' -ver='0.6.3' -usage='[OPTIONS] DIRECTORY' -# Copyright (C) 2009 Luke Shumaker -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# Originally written by Luke Shumaker . - -source "$RVSDIR/lib/stdio" -source "$RVSDIR/lib/rvsdb" - -# commit.d DIRNAME -dir="$1" - -tmp=`tempfile` -loginit "$tmp" -for file in $dir/*; do - hash=`rvs commit "$file"` - echo "$file:$hash" >> "$tmp" -done - -rvs commit.f "$tmp" -rm "$tmp" - diff --git a/src/rvs-core/commit.f.sh b/src/rvs-core/commit.f.sh deleted file mode 100644 index a9be426..0000000 --- a/src/rvs-core/commit.f.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!$$SHELL$$ -# abomination module:rvs:commit:f -name='rvs commit.f' -ver='0.6.3' -usage='[OPTIONS] FILE' -# Copyright (C) 2009 Luke Shumaker -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# Originally written by Luke Shumaker . - -source "$RVSDIR/lib/stdio" -source "$RVSDIR/lib/rvsdb" - -# commit.f FILENAME -file="$1" - -hash=`getid $file` -if [ ! -f "`rvs repo`/files/$hash" ]; then - #cp "$file" "`rvs repo`/files/$hash" - install -m 644 -o $USER -g $USER -T "$file" "`rvs repo`/files/$hash" -fi -echo "$hash" - diff --git a/src/rvs-core/commit.sh b/src/rvs-core/commit.sh deleted file mode 100644 index 9fb44fc..0000000 --- a/src/rvs-core/commit.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!$$SHELL$$ -# abomination module:rvs:commit -name='rvs commit' -ver='0.6.3' -usage='[OPTIONS] [FILE]' -# Copyright (C) 2009 Luke Shumaker -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# Originally written by Luke Shumaker . - -source "$RVSDIR/lib/stdio" -source "$RVSDIR/lib/rvsdb" - -# commit FILE -if [ $# -gt 0 ]; then - file="$1" -else - file='.' -fi - -warn "$file" - -if [ ! -e $file ]; then error "file \`$file' does not exist"; -# START file type list -elif [ -L $file ]; then type='l'; # symbolic link -elif [ -b $file ]; then type='b'; # block (buffered) special -elif [ -c $file ]; then type='c'; # character (unbuffered) special -elif [ -d $file ]; then type='d'; # directory -elif [ -p $file ]; then type='p'; # named pipe (FIFO) -elif [ -f $file ]; then type='f'; # regular file -elif [ -s $file ]; then type='s'; # socket -#elif [ -D $file ]; type='D'; # door (Solaris only) -# END file type list -else error "could not identify file type of \`$file'" -fi - -ret=`rvs "commit.$type" "$file"` - -tmp=`tempfile` -loginit "$tmp" -logwrite "$tmp" 'name' "$file" -logwrite "$tmp" 'hash' "$ret" -logwrite "$tmp" 'type' "$type" -logwrite "$tmp" 'author' "$user" -logwrite "$tmp" 'owner' "$owner" -logwrite "$tmp" 'owner' "$license" - -rvs commit.f "$tmp" -rm "$tmp" - diff --git a/src/rvs-core/get.d.sh b/src/rvs-core/get.d.sh deleted file mode 100644 index a58a7c0..0000000 --- a/src/rvs-core/get.d.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!$$SHELL$$ -# abomination module:rvs:get:d -name='rvs get.d' -ver='0.6.3' -usage='[OPTIONS] ID FILENAME' -# Copyright (C) 2009 Luke Shumaker -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# Originally written by Luke Shumaker . - -source "$RVSDIR/lib/stdio" -source "$RVSDIR/lib/rvsdb" - -# get.d ID DIRNAME -id="$1" -dir="$2" - -tmp=`tempfile` -rvs get.f `logread "$db" 'hash'` "$tmp" - -mkdir "$dir" -while read line; do - hash=`echo "$line" | sed 's/^.*://'` - name=`echo "$line" | sed "s/:$hash$//"` - rvs get "$dir/$file" -done < "$tmp" - -rm "$tmp" - diff --git a/src/rvs-core/get.f.sh b/src/rvs-core/get.f.sh deleted file mode 100644 index 3c17df5..0000000 --- a/src/rvs-core/get.f.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!$$SHELL$$ -# abomination module:rvs:get:f -name='rvs get.f' -ver='0.6.3' -usage='[OPTIONS] ID FILENAME' -# Copyright (C) 2009 Luke Shumaker -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# Originally written by Luke Shumaker . - -source "$RVSDIR/lib/stdio" -source "$RVSDIR/lib/rvsdb" - -# get.f ID FILENAME -id="$1" -file="$2" - -cp "`rvs repo`/files/$id" "$file" - diff --git a/src/rvs-core/get.sh b/src/rvs-core/get.sh deleted file mode 100644 index 1d3eb76..0000000 --- a/src/rvs-core/get.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!$$SHELL$$ -# abomination module:rvs:get -name='rvs commit' -ver='0.6.3' -usage='[OPTIONS] ID [FILENAME]' -# Copyright (C) 2009 Luke Shumaker -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# Originally written by Luke Shumaker . - -source "$RVSDIR/lib/stdio" -source "$RVSDIR/lib/rvsdb" - -# get ID [FILE] -id="$1" - -if [ $# -gt 1 ]; then - file="$2" -fi - -tmp=`tempfile` -rvs get.f "$id" "$tmp" -type=`logread "$tmp" 'type'` -if [ $# -gt 1 ]; then - file="$2" -else - file=`logread "$tmp" 'name'` -fi - -rvs "get.$type" "$id" "$file" - diff --git a/src/rvs-core/init.sh b/src/rvs-core/init.sh deleted file mode 100644 index ff650a5..0000000 --- a/src/rvs-core/init.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!$$SHELL$$ -# abomination rvs init -name='rvs init' -ver='0.6.3' -usage='[OPTIONS]' -# Copyright (C) 2009 Luke Shumaker -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# Originally written by Luke Shumaker . - -source "$RVSDIR/lib/stdio" -source "$RVSDIR/lib/rvsdb" - -mkdir -p .rvs/{,files} - diff --git a/src/rvs-core/lib/rvsdb.sh b/src/rvs-core/lib/rvsdb.sh deleted file mode 100644 index 41f0e03..0000000 --- a/src/rvs-core/lib/rvsdb.sh +++ /dev/null @@ -1,84 +0,0 @@ -#!$$SHELL$$ -# abomination module:rvs:lib:rvsdb -#name='rvs db' -#ver='0.6.3' -logver='0.6.0' -# Copyright (C) 2009 Luke Shumaker -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# Originally written by Luke Shumaker . - -source "$RVSDIR/lib/stdio" - -# getid file -getid() { - #md5sum $file | sed "s/ .*$//" - sha1sum $file | sed "s/ .*$//" -} - -# loginit LOG -loginit() { - log="$1" - echo "#!rvsdb $logver" > "$log"; -} - -# lograw LOG -lograw() { - log="$1" - sed '1s/#!rvsdb .*//' "$log" -} - -# _find LOG FIELD VAL -_find() { - log="$1" - field="$2" - val="$3" - lograw $log | \ - cut -d : -f field | \ - sed -n "/^$val$/=" | \ - tr "\n" , | \ - sed 's/,$//' -} - -# logread LOG VAR -logread() { - log="$1" - var="$2" - lograw "$log" | sed -n "s/^$var://p" - #lograw "$log" | sed -n `_find "$log" '1' "$var"`p | cut -d : -f 2- -} - -# logwrite LOG VAR VAL -logwrite() { - log="$1" - var="$2" - val="$3" - -# #lines=`_find "$log" '1' "$var"` -# #if [ "$lines" = '' ]; then -# if [ "`lograw "$log" | grep "^$var:"`" == '' ]; then -# # no exiswhereting occurances -# echo "$var:$val" >> "$log" -# else -# # found others -# # escape slashes -# var=`echo "$var" | sed 's:/:\\\\/:g'` -# val=`echo "$val" | sed 's:/:\\\\/:g'` -# sed -i "s/^$var:.*$/$var:$val/" "$log" -# #lograw "$log" | ?????? -# fi - echo "$var:$val" >> $log -} - -# logfind LOG VAL -logfind() { - log="$1" - val="$2" - # make a comma-delimeted list of the lines with our values - lines=`_find "$log" '2-' "$val"` - lograw "$log" | sed -n ${lines}p | cut -d : -f 1 -} - diff --git a/src/rvs-core/lib/stdio.sh b/src/rvs-core/lib/stdio.sh deleted file mode 100644 index 8facc79..0000000 --- a/src/rvs-core/lib/stdio.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!$$SHELL$$ -# abomination module:rvs:lib:stdio -#name='rvs stdio' -#ver='0.6.2' -#usage='' -# Copyright (C) 2009 Luke Shumaker -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# Originally written by Luke Shumaker . - -verbose() { - if [ "$volume" == '-v' ]; then - echo $@ - fi -} - -out() { - if [ "$volume" != '-q' ]; then - echo $@ - fi -} - -warn () { - echo "$name: $1" >> /dev/stderr -} - -error() { - warn "$1" - cat << __error__ >> /dev/stderr -Usage: $name $usage - -Try \`$name --help\' for more options. -__error__ - exit 1 -} - -fatal () { - warn "$1" - exit 1 -} - -version() { - echo "$name $ver" - if [ "$volume" != '-q' ]; then - cat << __disclaimer__ -$name is copyright (C) 2009 Luke Shumaker -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -Originally written by Luke Shumaker . -__disclaimer__ - fi - exit 0 -} - diff --git a/src/rvs-core/repo.sh b/src/rvs-core/repo.sh deleted file mode 100644 index 1db22c9..0000000 --- a/src/rvs-core/repo.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!$$SHELL$$ -# abomination rvs init -name='rvs repo' -ver='0.6.3' -usage='[OPTIONS]' -# Copyright (C) 2009 Luke Shumaker -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# Originally written by Luke Shumaker . - -source "$RVSDIR/lib/stdio" - -repo='.rvs' -pwd=`pwd` - -while [ "$pwd" != "`pwd`" ] && [ ! -e "`pwd`/$repo" ]; do - pwd=`pwd` - cd .. -done - -if [ -e "`pwd`/$repo" ]; then - echo "`pwd`/$repo" -else - fatal 'no rvs repository found' -fi - diff --git a/src/rvs.sh b/src/rvs.sh index a44570d..f47659f 100644 --- a/src/rvs.sh +++ b/src/rvs.sh @@ -1,8 +1,6 @@ #!$$SHELL$$ -# abomination module:rvs name='rvs' -ver='0.6.3' -usage='COMMAND [OPTIONS]' +ver='0.7.0' # Copyright (C) 2009 Luke Shumaker # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -11,9 +9,13 @@ usage='COMMAND [OPTIONS]' # # Originally written by Luke Shumaker . -export RVSDIR='$$libdir$$' -source "$RVSDIR/lib/stdio" -#source "$RVSDIR/lib/rvsdb" +RVSDIR='$$libdir$$' +REPO=`$RVSDIR/repo` + +error() { + echo "$name: $1" >> /dev/stderr + exit 1 +} # START OPTION HANDLING # com=$1; @@ -22,8 +24,20 @@ case "$com" in '') error 'no command specified';; *) if [ -f "$RVSDIR/$com" ]; then + export RVSDIR $RVSDIR/$@ + done='yes' else + while read plugin; do + if [ -f "$RVSDIR/$plugin/$com" ]; then + export RVSDIR=$RVSDIR/$plugin + $RVSDIR/$@ + done='yes' + break + fi + done < $REPO/plugins + fi + if [ "$done" != 'yes' ]; then error "unrecognized command \`$com'" fi :;; -- cgit v1.2.3-54-g00ecf