#!/bin/bash # abomination module:rvs:lib:rvsdb #name='rvs db' #ver='0.5.10' logver='0.5.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 function getid { #md5sum $file | sed "s/ .*$//" sha1sum $file | sed "s/ .*$//" } # loginit LOG function loginit { log="$1" echo "#!rvsdb $logver" > "$log"; } # lograw LOG function lograw { log="$1" sed '1s/#!rvsdb .*//' "$log" } # _find LOG FIELD VAL function _find { log="$1" field="$2" val="$3" lograw $log | \ cut -d : -f field | \ sed -n "/^$val$/=" | \ tr "\n" , | \ sed 's/,$//' } # logread LOG VAR function 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 function 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 function 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 }