SMOLNET PORTAL home about changes
imulti criterias search - 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 9da2c6c29fe7d7b2c1b86bdccd5544e04b54913d	/scm/dossier/commit/9da2c6c29fe7d7b2c1b86bdccd5544e04b54913d.gph	bitreich.org	70
1parent b63c0c8606127cdb2990ef9c4db1d1177ad9e8b1	/scm/dossier/commit/b63c0c8606127cdb2990ef9c4db1d1177ad9e8b1.gph	bitreich.org	70
hAuthor: Solene Rapenne <solene@perso.pw>	URL:mailto:solene@perso.pw	bitreich.org	70
iDate:   Tue, 17 Jul 2018 18:31:53 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
imulti criterias search	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M cdb                                 |      38 +++++++++++++++++++++++++++----	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 34 insertions(+), 4 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@@ -1,6 +1,6 @@	Err	bitreich.org	70
i #!/bin/sh	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-: ${REPO:=/home/solene/dev/cbd/games/}	Err	bitreich.org	70
i+: ${REPO:=collection}	Err	bitreich.org	70
i mkdir -p "${REPO}" || exit 1	Err	bitreich.org	70
i if [ ! -d "${REPO}/.git" ]	Err	bitreich.org	70
i then	Err	bitreich.org	70
i@@ -136,7 +136,37 @@ add_value() {	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 -rl "$2" "$1" | cut -d '/' -f 2	Err	bitreich.org	70
i+    shift	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+    RESULT=$(mktemp /tmp/cdb.XXXXXXXXXXXX)	Err	bitreich.org	70
i+    COUNT=0	Err	bitreich.org	70
i+    if [ -f "$RESULT" ]	Err	bitreich.org	70
i+    then	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+                if [ ! -d "$ATTRIBUTE" ]	Err	bitreich.org	70
i+                then	Err	bitreich.org	70
i+                        printf 'The attribute %s do not exists\n' "${ATTRIBUTE}"	Err	bitreich.org	70
i+                        exit 5	Err	bitreich.org	70
i+                fi	Err	bitreich.org	70
i+                grep -rl "$VALUE" "$ATTRIBUTE" | cut -d '/' -f 2 >> "$RESULT"	Err	bitreich.org	70
i+                COUNT=$(( COUNT + 1 ))	Err	bitreich.org	70
i+            done	Err	bitreich.org	70
i+            sort "$RESULT" | uniq -c | \	Err	bitreich.org	70
i+                    awk -v count=$COUNT \	Err	bitreich.org	70
i+                    '{ if($1==count) {	Err	bitreich.org	70
i+                        $1=""               # remove uniq result	Err	bitreich.org	70
i+                        gsub(/^[ ]+/,"",$0) # remove leading space due to uniq	Err	bitreich.org	70
i+                        print	Err	bitreich.org	70
i+                    }}'	Err	bitreich.org	70
i+    else	Err	bitreich.org	70
i+            printf 'Cannot create a temporary file in /tmp\n'	Err	bitreich.org	70
i+            exit 6	Err	bitreich.org	70
i+    fi	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@@ -154,7 +184,7 @@ usage() {	Err	bitreich.org	70
i            "cdb help" \	Err	bitreich.org	70
i            "cdb export" \	Err	bitreich.org	70
i            "cdb show [identifier]" \	Err	bitreich.org	70
i-           "cdb search [attribute [value]]" \	Err	bitreich.org	70
i+           "cdb search [attribute [value]] ... [attribute [value]] ..." \	Err	bitreich.org	70
i            "cdb identifier attribute value ... attribute value ..."	Err	bitreich.org	70
i     exit 0   	Err	bitreich.org	70
i }	Err	bitreich.org	70
i@@ -175,7 +205,7 @@ if [ "$1" = "search" ];	Err	bitreich.org	70
i then	Err	bitreich.org	70
i     if [ "$#" -eq 1 ]; then show_attributes        ; fi	Err	bitreich.org	70
i     if [ "$#" -eq 2 ]; then list "$2"              ; fi	Err	bitreich.org	70
i-    if [ "$#" -eq 3 ]; then search_value "$2" "$3" ; fi	Err	bitreich.org	70
i+    if [ "$#" -ge 3 ]; then search_value "$@" ; fi	Err	bitreich.org	70
i fi	Err	bitreich.org	70
i 	Err	bitreich.org	70
i if [ "$#" -ge 3 ]; then add_value "$@" ; fi	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/dossier/commit/9da2c6c29fe7d7...
Content-Typetext/plain; charset=utf-8