summaryrefslogtreecommitdiff
path: root/src/rvs.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/rvs.sh')
-rw-r--r--src/rvs.sh26
1 files changed, 20 insertions, 6 deletions
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 <lukeshu@sbcglobal.net>.
-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
:;;