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