From 3da845cfc718a09b0050723b8bb49b0b4b118d04 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Thu, 16 Jul 2009 14:12:53 -0400 Subject: rename source to rvs (`bzr mv' is fail!) restructure configure and Makefile.orig --- Makefile.orig | 58 ++++++++++++++------------------- source/rvs | 52 ----------------------------- source/rvs-core/commit | 51 ----------------------------- source/rvs-core/commit.d | 29 ----------------- source/rvs-core/commit.f | 25 -------------- source/rvs-core/get | 34 ------------------- source/rvs-core/get.d | 32 ------------------ source/rvs-core/get.f | 22 ------------- source/rvs-core/init | 18 ---------- source/rvs-core/lib/rvsdb | 83 ----------------------------------------------- source/rvs-core/lib/stdio | 51 ----------------------------- src/rvs-core/commit.d.sh | 29 +++++++++++++++++ src/rvs-core/commit.f.sh | 25 ++++++++++++++ src/rvs-core/commit.sh | 51 +++++++++++++++++++++++++++++ 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 | 83 +++++++++++++++++++++++++++++++++++++++++++++++ src/rvs-core/lib/stdio.sh | 51 +++++++++++++++++++++++++++++ src/rvs.sh | 52 +++++++++++++++++++++++++++++ 21 files changed, 421 insertions(+), 431 deletions(-) delete mode 100755 source/rvs delete mode 100755 source/rvs-core/commit delete mode 100755 source/rvs-core/commit.d delete mode 100755 source/rvs-core/commit.f delete mode 100755 source/rvs-core/get delete mode 100644 source/rvs-core/get.d delete mode 100755 source/rvs-core/get.f delete mode 100755 source/rvs-core/init delete mode 100755 source/rvs-core/lib/rvsdb delete mode 100755 source/rvs-core/lib/stdio create mode 100644 src/rvs-core/commit.d.sh create mode 100644 src/rvs-core/commit.f.sh create mode 100644 src/rvs-core/commit.sh create mode 100644 src/rvs-core/get.d.sh create mode 100644 src/rvs-core/get.f.sh create mode 100644 src/rvs-core/get.sh create mode 100644 src/rvs-core/init.sh create mode 100644 src/rvs-core/lib/rvsdb.sh create mode 100644 src/rvs-core/lib/stdio.sh create mode 100644 src/rvs.sh diff --git a/Makefile.orig b/Makefile.orig index a212209..67ac85f 100644 --- a/Makefile.orig +++ b/Makefile.orig @@ -13,8 +13,6 @@ RM = rm -f CP = cp MKDIR = mkdir -p -CHOWN = chown -CHMOD = chmod INSTALL = install PRE = @@pre@@ # code pre-processor @@ -26,42 +24,31 @@ libdir = $$libdir$$ sourcedir = @@sourcedir@@ # Targets ########################################################## + rvs : wrapper core +.PHONY : rvs install clean remove wrapper i-wrapper core i-core .SUFFIXES : -out/% : $(sourcedir)/source/% $(PRE) out - $(PRE) <$< > $@ +wrapper : out/rvs + +core : shellScripts -wrapper : lib out/rvs +srcFiles = $(shell find $(sourcedir)/src/rvs-core/ -type f) +outFiles = $(patsubst $(sourcedir)/src/%,out/%,${basename $(srcFiles)}) +libFiles = $(patsubst out/rvs-core/%,$(libdir)/%, $(outFiles) ) +shellScripts : $(outFiles) -#core: lib commit get init l b c d p f s -core : lib commit get init d f +# install -commit: lib out/rvs-core/commit -get: lib out/rvs-core/get -init: lib out/rvs-core/init +install : rvs i-wrapper i-core -#l: lib out/rvs-core out/rvs-core/commit.l out/rvs-core/get.l -#b: lib out/rvs-core out/rvs-core/commit.b out/rvs-core/get.b -#c: lib out/rvs-core out/rvs-core/commit.c out/rvs-core/get.c -d : lib out/rvs-core out/rvs-core/commit.d out/rvs-core/get.d -#p: lib out/rvs-core out/rvs-core/commit.p out/rvs-core/get.p -f : lib out/rvs-core out/rvs-core/commit.f out/rvs-core/get.f -#s: lib out/rvs-core out/rvs-core/commit.s out/rvs-core/get.s -#D: lib out/rvs-core out/rvs-core/commit.D out/rvs-core/get.D +i-wrapper : $(prefix)/$(bindir)/rvs -lib: out/rvs-core/lib out/rvs-core/lib/stdio out/rvs-core/lib/rvsdb -# install/clean/uninstall +i-core : $(libFiles) -install : - $(INSTALL) -m 755 -o root -g root -T out/rvs $(prefix)/$(bindir)/rvs - #$(INSTALL) -m 755 -o root -g root -d $(libdir) - #$(INSTALL) -m 755 -o root -g root -D out/rvs-core/{lib/*,*} $(libdir) - $(CP) -r out/rvs-core $(libdir) - $(CHOWN) -R root:root $(libdir) - $(CHMOD) -R 755 $(libdir) +# clean/remove clean : $(RM) -r tmp @@ -72,13 +59,16 @@ remove : $(RM) $(prefix)/$(bindir)/rvs $(RM) -r $(libdir) -# Override build instructions for directories -out: - $(MKDIR) out +# implicit rules + +out/% : $(sourcedir)/src/%.sh $(PRE) + $(MKDIR) $(dir $@) + $(PRE) <$< > $@ -out/rvs-core: out - $(MKDIR) out/rvs-core +$(prefix)/$(bindir)/% : out/% + $(INSTALL) -m 755 -o root -g root -T $< $@ -out/rvs-core/lib: out/rvs-core - $(MKDIR) out/rvs-core/lib +$(libdir)/% : out/rvs-core/% + $(INSTALL) -m 755 -o root -g root -d $(dir $@) + $(INSTALL) -m 755 -o root -g root -T $< $@ diff --git a/source/rvs b/source/rvs deleted file mode 100755 index 518f487..0000000 --- a/source/rvs +++ /dev/null @@ -1,52 +0,0 @@ -#!$$SHELL$$ -# abomination module:rvs -name='rvs' -ver='0.5.10' -usage='COMMAND [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 . - -RVSDIR='$$libdir$$' -source "$RVSDIR/lib/stdio" -#source "$RVSDIR/lib/rvsdb" - -# START OPTION HANDLING # -com=$1; -# END OPTION HANDLING # -case "$com" in - -d) echo "$RVSDIR";; - '') error 'no command specified';; - *) - if [ -f "$RVSDIR/$com" ]; then - export TMPDIR="$repo/tmp" - $RVSDIR/$@ - else - error "unrecognized command \`$com'" - fi - :;; -esac - -#args=`getopt -n "$name" -o "${sopt}" -l "${lopt}" -- "$@"` -#if [ $? == 0 ]; then -# set -- $args -# while [ $# -gt 0 ]; do -# case "$1" in -# -V | --version) mode='version';; -# -h | -H | -\? | --help) mode='help';; -# -# -v | --verbose) volume='-v';; -# -q | --quiet) volume='-q';; -# -# --) shift; break;; -# esac -# shift; -# done -#else -# error -#fi - diff --git a/source/rvs-core/commit b/source/rvs-core/commit deleted file mode 100755 index 2f120e0..0000000 --- a/source/rvs-core/commit +++ /dev/null @@ -1,51 +0,0 @@ -#!$$SHELL$$ -# abomination module:rvs:commit -name='rvs commit' -ver='0.6.0' -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 "`rvs -d`/lib/stdio" -source "`rvs -d`/lib/rvsdb" - -# commit FILE -if [ $# -gt 0 ]; then - file="$1" -else - file='.' -fi - -if [ ! -e $file]; then error "file \`$file' does not exist"; -# START file type list -elif [ -l $file ]; type='l'; # symbolic link -elif [ -b $file ]; type='b'; # block (buffered) special -elif [ -c $file ]; type='c'; # character (unbuffered) special -elif [ -d $file ]; type='d'; # directory -elif [ -p $file ]; type='p'; # named pipe (FIFO) -elif [ -f $file ]; type='f'; # regular file -elif [ -s $file ]; 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/source/rvs-core/commit.d b/source/rvs-core/commit.d deleted file mode 100755 index 5a47614..0000000 --- a/source/rvs-core/commit.d +++ /dev/null @@ -1,29 +0,0 @@ -#!$$SHELL$$ -# abomination module:rvs:commit:d -name='rvs commit.d' -ver='0.6.0' -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 "`rvs -d`/lib/stdio" -source "`rvs -d`/lib/rvsdb" - -# commit.d DIRNAME -dir="$1" - -tmp=`tempfile` -loginit "$tmp" -for file in $dir; do - hash=`commit "$dir/$file"` - echo "$file:$hash" >> "$tmp" -done - -rvs commit.f "$tmp" -rm "$tmp" - diff --git a/source/rvs-core/commit.f b/source/rvs-core/commit.f deleted file mode 100755 index cd8070b..0000000 --- a/source/rvs-core/commit.f +++ /dev/null @@ -1,25 +0,0 @@ -#!$$SHELL$$ -# abomination module:rvs:commit:f -name='rvs commit.f' -ver='0.6.0' -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 "`rvs -d`/lib/stdio" -source "`rvs -d`/lib/rvsdb" - -# commit.f FILENAME -file="$1" - -hash=`getid $file` -if [ ! -f "$repo/files/$hash" ]; then - cp "$file" "$repo/files/$hash" -fi -echo "$hash" - diff --git a/source/rvs-core/get b/source/rvs-core/get deleted file mode 100755 index c1a2469..0000000 --- a/source/rvs-core/get +++ /dev/null @@ -1,34 +0,0 @@ -#!$$SHELL$$ -# abomination module:rvs:get -name='rvs commit' -ver='0.6.0' -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 "`rvs -d`/lib/stdio" -source "`rvs -d`/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/source/rvs-core/get.d b/source/rvs-core/get.d deleted file mode 100644 index dcd78e8..0000000 --- a/source/rvs-core/get.d +++ /dev/null @@ -1,32 +0,0 @@ -#!$$SHELL$$ -# abomination module:rvs:get:d -name='rvs get.d' -ver='0.6.0' -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 "`rvs -d`/lib/stdio" -source "`rvs -d`/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/source/rvs-core/get.f b/source/rvs-core/get.f deleted file mode 100755 index 9e4cec7..0000000 --- a/source/rvs-core/get.f +++ /dev/null @@ -1,22 +0,0 @@ -#!$$SHELL$$ -# abomination module:rvs:get:f -name='rvs get.f' -ver='0.6.0' -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 "`rvs -d`/lib/stdio" -source "`rvs -d`/lib/rvsdb" - -# get.f ID FILENAME -id="$1" -file="$2" - -cp "$repo/files/$id" "$file" - diff --git a/source/rvs-core/init b/source/rvs-core/init deleted file mode 100755 index c0b5980..0000000 --- a/source/rvs-core/init +++ /dev/null @@ -1,18 +0,0 @@ -#!$$SHELL$$ -# abomination rvs init -name='rvs init' -ver='0.6.0' -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 "`rvs -d`/lib/stdio" -source "`rvs -d`/lib/rvsdb" - -mkdir -p "$repo/{files/tmp}" - diff --git a/source/rvs-core/lib/rvsdb b/source/rvs-core/lib/rvsdb deleted file mode 100755 index 3ced573..0000000 --- a/source/rvs-core/lib/rvsdb +++ /dev/null @@ -1,83 +0,0 @@ -#!$$SHELL$$ -# abomination module:rvs:lib:rvsdb -#name='rvs db' -#ver='0.6.2' -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 "`rvs -d`/lib/stdio" -#source "`rvs -d`/lib/rvsdb" - -repo='.rvs' - -# 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 - sed -i "^s/$var:.*/$var:$val/" "$log" - #lograw "$log" | ?????? - fi -} - -# 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/source/rvs-core/lib/stdio b/source/rvs-core/lib/stdio deleted file mode 100755 index aff22f1..0000000 --- a/source/rvs-core/lib/stdio +++ /dev/null @@ -1,51 +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 -} - -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 -} - -error() { - cat << __error__ -$name: $1 -Usage: $name $usage - -Try $name \`--help' for more options. -__error__ - exit 1 -} - diff --git a/src/rvs-core/commit.d.sh b/src/rvs-core/commit.d.sh new file mode 100644 index 0000000..5a47614 --- /dev/null +++ b/src/rvs-core/commit.d.sh @@ -0,0 +1,29 @@ +#!$$SHELL$$ +# abomination module:rvs:commit:d +name='rvs commit.d' +ver='0.6.0' +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 "`rvs -d`/lib/stdio" +source "`rvs -d`/lib/rvsdb" + +# commit.d DIRNAME +dir="$1" + +tmp=`tempfile` +loginit "$tmp" +for file in $dir; do + hash=`commit "$dir/$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 new file mode 100644 index 0000000..cd8070b --- /dev/null +++ b/src/rvs-core/commit.f.sh @@ -0,0 +1,25 @@ +#!$$SHELL$$ +# abomination module:rvs:commit:f +name='rvs commit.f' +ver='0.6.0' +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 "`rvs -d`/lib/stdio" +source "`rvs -d`/lib/rvsdb" + +# commit.f FILENAME +file="$1" + +hash=`getid $file` +if [ ! -f "$repo/files/$hash" ]; then + cp "$file" "$repo/files/$hash" +fi +echo "$hash" + diff --git a/src/rvs-core/commit.sh b/src/rvs-core/commit.sh new file mode 100644 index 0000000..2f120e0 --- /dev/null +++ b/src/rvs-core/commit.sh @@ -0,0 +1,51 @@ +#!$$SHELL$$ +# abomination module:rvs:commit +name='rvs commit' +ver='0.6.0' +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 "`rvs -d`/lib/stdio" +source "`rvs -d`/lib/rvsdb" + +# commit FILE +if [ $# -gt 0 ]; then + file="$1" +else + file='.' +fi + +if [ ! -e $file]; then error "file \`$file' does not exist"; +# START file type list +elif [ -l $file ]; type='l'; # symbolic link +elif [ -b $file ]; type='b'; # block (buffered) special +elif [ -c $file ]; type='c'; # character (unbuffered) special +elif [ -d $file ]; type='d'; # directory +elif [ -p $file ]; type='p'; # named pipe (FIFO) +elif [ -f $file ]; type='f'; # regular file +elif [ -s $file ]; 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 new file mode 100644 index 0000000..dcd78e8 --- /dev/null +++ b/src/rvs-core/get.d.sh @@ -0,0 +1,32 @@ +#!$$SHELL$$ +# abomination module:rvs:get:d +name='rvs get.d' +ver='0.6.0' +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 "`rvs -d`/lib/stdio" +source "`rvs -d`/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 new file mode 100644 index 0000000..9e4cec7 --- /dev/null +++ b/src/rvs-core/get.f.sh @@ -0,0 +1,22 @@ +#!$$SHELL$$ +# abomination module:rvs:get:f +name='rvs get.f' +ver='0.6.0' +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 "`rvs -d`/lib/stdio" +source "`rvs -d`/lib/rvsdb" + +# get.f ID FILENAME +id="$1" +file="$2" + +cp "$repo/files/$id" "$file" + diff --git a/src/rvs-core/get.sh b/src/rvs-core/get.sh new file mode 100644 index 0000000..c1a2469 --- /dev/null +++ b/src/rvs-core/get.sh @@ -0,0 +1,34 @@ +#!$$SHELL$$ +# abomination module:rvs:get +name='rvs commit' +ver='0.6.0' +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 "`rvs -d`/lib/stdio" +source "`rvs -d`/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 new file mode 100644 index 0000000..cfd269f --- /dev/null +++ b/src/rvs-core/init.sh @@ -0,0 +1,18 @@ +#!$$SHELL$$ +# abomination rvs init +name='rvs init' +ver='0.6.0' +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 "`rvs -d`/lib/stdio" +source "`rvs -d`/lib/rvsdb" + +mkdir -p "$repo/{files,tmp}" + diff --git a/src/rvs-core/lib/rvsdb.sh b/src/rvs-core/lib/rvsdb.sh new file mode 100644 index 0000000..3ced573 --- /dev/null +++ b/src/rvs-core/lib/rvsdb.sh @@ -0,0 +1,83 @@ +#!$$SHELL$$ +# abomination module:rvs:lib:rvsdb +#name='rvs db' +#ver='0.6.2' +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 "`rvs -d`/lib/stdio" +#source "`rvs -d`/lib/rvsdb" + +repo='.rvs' + +# 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 + sed -i "^s/$var:.*/$var:$val/" "$log" + #lograw "$log" | ?????? + fi +} + +# 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 new file mode 100644 index 0000000..aff22f1 --- /dev/null +++ b/src/rvs-core/lib/stdio.sh @@ -0,0 +1,51 @@ +#!$$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 +} + +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 +} + +error() { + cat << __error__ +$name: $1 +Usage: $name $usage + +Try $name \`--help' for more options. +__error__ + exit 1 +} + diff --git a/src/rvs.sh b/src/rvs.sh new file mode 100644 index 0000000..518f487 --- /dev/null +++ b/src/rvs.sh @@ -0,0 +1,52 @@ +#!$$SHELL$$ +# abomination module:rvs +name='rvs' +ver='0.5.10' +usage='COMMAND [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 . + +RVSDIR='$$libdir$$' +source "$RVSDIR/lib/stdio" +#source "$RVSDIR/lib/rvsdb" + +# START OPTION HANDLING # +com=$1; +# END OPTION HANDLING # +case "$com" in + -d) echo "$RVSDIR";; + '') error 'no command specified';; + *) + if [ -f "$RVSDIR/$com" ]; then + export TMPDIR="$repo/tmp" + $RVSDIR/$@ + else + error "unrecognized command \`$com'" + fi + :;; +esac + +#args=`getopt -n "$name" -o "${sopt}" -l "${lopt}" -- "$@"` +#if [ $? == 0 ]; then +# set -- $args +# while [ $# -gt 0 ]; do +# case "$1" in +# -V | --version) mode='version';; +# -h | -H | -\? | --help) mode='help';; +# +# -v | --verbose) volume='-v';; +# -q | --quiet) volume='-q';; +# +# --) shift; break;; +# esac +# shift; +# done +#else +# error +#fi + -- cgit v1.1-4-g5e80