summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2009-07-16 14:12:53 -0400
committerLuke Shumaker <lukeshu@sbcglobal.net>2015-06-26 00:30:11 -0600
commit3da845cfc718a09b0050723b8bb49b0b4b118d04 (patch)
treed27e63249766fffab4529b4d5fde4e0777fcb2ea /src
parent6ca3d3f0cd4437922280724957dc1279e007da1f (diff)
rename source to rvs (`bzr mv' is fail!)
restructure configure and Makefile.orig
Diffstat (limited to 'src')
-rw-r--r--src/rvs-core/commit.d.sh29
-rw-r--r--src/rvs-core/commit.f.sh25
-rw-r--r--src/rvs-core/commit.sh51
-rw-r--r--src/rvs-core/get.d.sh32
-rw-r--r--src/rvs-core/get.f.sh22
-rw-r--r--src/rvs-core/get.sh34
-rw-r--r--src/rvs-core/init.sh18
-rw-r--r--src/rvs-core/lib/rvsdb.sh83
-rw-r--r--src/rvs-core/lib/stdio.sh51
-rw-r--r--src/rvs.sh52
10 files changed, 397 insertions, 0 deletions
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 <lukeshu@sbcglobal.net>.
+
+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 <lukeshu@sbcglobal.net>.
+
+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 <lukeshu@sbcglobal.net>.
+
+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 <lukeshu@sbcglobal.net>.
+
+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 <lukeshu@sbcglobal.net>.
+
+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 <lukeshu@sbcglobal.net>.
+
+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 <lukeshu@sbcglobal.net>.
+
+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 <lukeshu@sbcglobal.net>.
+
+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 <lukeshu@sbcglobal.net>.
+
+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 <lukeshu@sbcglobal.net>.
+__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 <lukeshu@sbcglobal.net>.
+
+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
+