summaryrefslogtreecommitdiff
path: root/src/rvs-core/lib/rvsdb.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/rvs-core/lib/rvsdb.sh')
-rw-r--r--src/rvs-core/lib/rvsdb.sh83
1 files changed, 83 insertions, 0 deletions
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
+}
+