SMOLNET PORTAL home about changes
ilot of work - dossier - console collection manager	Err	bitreich.org	70
1Log	/scm/dossier/log.gph	bitreich.org	70
1Files	/scm/dossier/files.gph	bitreich.org	70
1Refs	/scm/dossier/refs.gph	bitreich.org	70
1Tags	/scm/dossier/tag	bitreich.org	70
1README	/scm/dossier/file/README.gph	bitreich.org	70
1LICENSE	/scm/dossier/file/LICENSE.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit 8c7a95569085ede05744318afe3212f4900aca2c	/scm/dossier/commit/8c7a95569085ede05744318afe3212f4900aca2c.gph	bitreich.org	70
1parent 3bf0b90aa2f8f10172f97fcc092d990407e7bf22	/scm/dossier/commit/3bf0b90aa2f8f10172f97fcc092d990407e7bf22.gph	bitreich.org	70
hAuthor: Solene Rapenne <solene@perso.pw>	URL:mailto:solene@perso.pw	bitreich.org	70
iDate:   Sat, 14 Jul 2018 21:48:15 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
ilot of work	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M cdb                                 |     106 ++++++++++++++++++++++++++-----	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 90 insertions(+), 16 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/cdb b/cdb	/scm/dossier/file/cdb.gph	bitreich.org	70
i@@ -2,48 +2,122 @@	Err	bitreich.org	70
i 	Err	bitreich.org	70
i REPO=/home/solene/dev/cbd/games/	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	Err	bitreich.org	70
i+# displays the values of an identifier	Err	bitreich.org	70
i+# $1 identifier	Err	bitreich.org	70
i show() {	Err	bitreich.org	70
i     cd "${REPO}"	Err	bitreich.org	70
i+    SEEN=0	Err	bitreich.org	70
i+    for attribute in *	Err	bitreich.org	70
i+    do	Err	bitreich.org	70
i+        if [ -f "${attribute}/${1}" ]	Err	bitreich.org	70
i+        then	Err	bitreich.org	70
i+            if [ "$SEEN" -eq 0 ]	Err	bitreich.org	70
i+            then	Err	bitreich.org	70
i+                printf "%s:\n" "$1"	Err	bitreich.org	70
i+                SEEN=1	Err	bitreich.org	70
i+            fi	Err	bitreich.org	70
i+                printf "%15s: %s\n" ${attribute} "$(cat "${attribute}/${1}")"	Err	bitreich.org	70
i+        fi	Err	bitreich.org	70
i+    done	Err	bitreich.org	70
i+    if [ "$SEEN" -eq 1 ]	Err	bitreich.org	70
i+    then	Err	bitreich.org	70
i+        exit 0	Err	bitreich.org	70
i+    else	Err	bitreich.org	70
i+        printf '%s is not in the library.\n' "$1"	Err	bitreich.org	70
i+        exit 1	Err	bitreich.org	70
i+    fi	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# delete identifier from attributes	Err	bitreich.org	70
i+# $1 identifier	Err	bitreich.org	70
i+delete() {	Err	bitreich.org	70
i+    cd "${REPO}"	Err	bitreich.org	70
i     for attribute in *	Err	bitreich.org	70
i     do	Err	bitreich.org	70
i         if [ -f "${attribute}/${1}" ]	Err	bitreich.org	70
i         then	Err	bitreich.org	70
i-            printf "%15s: %s\n" ${attribute} "$(cat ${attribute}/${1})"	Err	bitreich.org	70
i+            rm "${attribute}/${1}"	Err	bitreich.org	70
i         fi	Err	bitreich.org	70
i     done	Err	bitreich.org	70
i+    exit 0	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# displays list of identifiers	Err	bitreich.org	70
i+show_list() {	Err	bitreich.org	70
i+    cd "${REPO}"	Err	bitreich.org	70
i+    find . -type f | cut -d '/' -f 3 | sort | uniq -c | \	Err	bitreich.org	70
i+        awk '{ for(i=2;i<=NF;i=i+1) { printf "%s ", $i }	Err	bitreich.org	70
i+               printf "(%i)\n", $1	Err	bitreich.org	70
i+        }'	Err	bitreich.org	70
i+    exit 0	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+# displays attributes used	Err	bitreich.org	70
i show_attributes() {	Err	bitreich.org	70
i     cd "${REPO}"	Err	bitreich.org	70
i-    (	Err	bitreich.org	70
i-        for attribute in $(find . -type d -maxdepth 1 -mindepth 1)	Err	bitreich.org	70
i-        do	Err	bitreich.org	70
i-            printf "${attribute}" | cut -d '/' -f 2	Err	bitreich.org	70
i-        done	Err	bitreich.org	70
i-    ) | sort | tr '\n' ' '	Err	bitreich.org	70
i+    find . -type f | cut -d '/' -f 2 | sort | uniq -c | \	Err	bitreich.org	70
i+        awk '{ for(i=2;i<=NF;i=i+1) { printf "%s ", $i }	Err	bitreich.org	70
i+                   printf "(%i)\n", $1	Err	bitreich.org	70
i+        }'	Err	bitreich.org	70
i     exit 0	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-# $1 identifier	Err	bitreich.org	70
i-# $2 attribute	Err	bitreich.org	70
i-# $3 value	Err	bitreich.org	70
i+# add/modify a value	Err	bitreich.org	70
i+# $@ identifier / attr / value / attr / value / ....	Err	bitreich.org	70
i+# shift to have attr / value again and again	Err	bitreich.org	70
i add_value() {	Err	bitreich.org	70
i     cd "$REPO"	Err	bitreich.org	70
i-    mkdir -p "$2"	Err	bitreich.org	70
i-    printf '%s' "$3" > "$2"/"$1"	Err	bitreich.org	70
i+    ID="$1"	Err	bitreich.org	70
i+    shift	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+    while [ "$#" -gt 1 ]	Err	bitreich.org	70
i+    do	Err	bitreich.org	70
i+        ATTRIBUTE="$1"	Err	bitreich.org	70
i+        VALUE="$2"	Err	bitreich.org	70
i+        shift 2	Err	bitreich.org	70
i+        	Err	bitreich.org	70
i+        mkdir -p "$ATTRIBUTE"	Err	bitreich.org	70
i+        printf '%s' "$VALUE" > "$ATTRIBUTE"/"${ID}"	Err	bitreich.org	70
i+    done	Err	bitreich.org	70
i     exit 0	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+# returns identifiers having attribute=value	Err	bitreich.org	70
i # $1 attribute	Err	bitreich.org	70
i # $2 value	Err	bitreich.org	70
i search_value() {	Err	bitreich.org	70
i     cd "$REPO"	Err	bitreich.org	70
i-    grep -r "$2" "$1"	Err	bitreich.org	70
i+    grep -rl "$2" "$1" | cut -d '/' -f 2	Err	bitreich.org	70
i     exit 0	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+# returns list of identifiers in a attribute	Err	bitreich.org	70
i+# $1 attribute	Err	bitreich.org	70
i+list() {	Err	bitreich.org	70
i+    cd "$REPO"	Err	bitreich.org	70
i+    grep -r . "$1" | cut -d '/' -f 2- | sort	Err	bitreich.org	70
i+    exit 0	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# displays usage	Err	bitreich.org	70
i+usage() {	Err	bitreich.org	70
i+    printf '%s\n' \	Err	bitreich.org	70
i+           "cdb help" \	Err	bitreich.org	70
i+           "cdb ls" \	Err	bitreich.org	70
i+           "cdb ls attribute" \	Err	bitreich.org	70
i+           "cdb identifier" \	Err	bitreich.org	70
i+           "cdb attributes" \	Err	bitreich.org	70
i+           "cdb search attribute value" \	Err	bitreich.org	70
i+           "cdb identifier attribute value"	Err	bitreich.org	70
i+    exit 0   	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+if [ "$1" = "rm" ] && [ "$#" -eq 2 ] ; then delete "$2" ; fi	Err	bitreich.org	70
i+if [ "$1" = "ls" ] && [ "$#" -eq 2 ] ; then list "$2" ; fi	Err	bitreich.org	70
i+if [ "$1" = "help" ] ; then usage ; fi	Err	bitreich.org	70
i+if [ "$1" = "ls" ] ; then show_list ; fi	Err	bitreich.org	70
i if [ "$1" = "search" ] && [ "$#" -eq 3 ]; then search_value "$2" "$3" ; fi	Err	bitreich.org	70
i if [ "$1" = "attrs" ]; then show_attributes ; fi	Err	bitreich.org	70
i-if [ "$#" -eq 3 ]; then add_value "$1" "$2" "$3" ; fi	Err	bitreich.org	70
i-show "$1"	Err	bitreich.org	70
i+if [ "$#" -ge 3 ]; then add_value $@ ; fi	Err	bitreich.org	70
i+if [ "$#" -eq 1 ]; then show "$1" ; fi	Err	bitreich.org	70
i+usage	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/dossier/commit/8c7a95569085ed...
Content-Typetext/plain; charset=utf-8