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