SMOLNET PORTAL home about changes
iSQlite Version (for history) - 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 67938e405b6efa96c2815577e70c7ec6d367fcab	/scm/dossier/commit/67938e405b6efa96c2815577e70c7ec6d367fcab.gph	bitreich.org	70
1parent 9720541044836a4a509a41f038fcd22f64ec1116	/scm/dossier/commit/9720541044836a4a509a41f038fcd22f64ec1116.gph	bitreich.org	70
hAuthor: Solene Rapenne <solene@perso.pw>	URL:mailto:solene@perso.pw	bitreich.org	70
iDate:   Sun, 15 Jul 2018 01:42:51 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
iSQlite Version (for history)	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  A cdb_sqlite                          |     142 +++++++++++++++++++++++++++++++	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 142 insertions(+), 0 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/cdb_sqlite b/cdb_sqlite	/scm/dossier/file/cdb_sqlite.gph	bitreich.org	70
i@@ -0,0 +1,142 @@	Err	bitreich.org	70
i+#!/bin/sh	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+if [ ! -f "database.sqlite" ]	Err	bitreich.org	70
i+then	Err	bitreich.org	70
i+        printf 'CREATE TABLE collection ( id text primary key );' | \	Err	bitreich.org	70
i+                sqlite3 database.sqlite || exit 1	Err	bitreich.org	70
i+fi	Err	bitreich.org	70
i+#mkdir -p "${REPO}" || exit 1	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+    printf "SELECT * FROM collection WHERE id = '%s';" \	Err	bitreich.org	70
i+                "$1" | \	Err	bitreich.org	70
i+                sqlite3 database.sqlite -line	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+    if [ "$?" -eq 0 ]	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+# export the data in csv format "data","data","data"	Err	bitreich.org	70
i+# we assume it'll works with the dataset	Err	bitreich.org	70
i+export_csv() {	Err	bitreich.org	70
i+    sqlite3 database.sqlite -header -csv 'select * from collection;'	Err	bitreich.org	70
i+    exit $?	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+    printf "DELETE from collection where id = '%s';" "$1" | \	Err	bitreich.org	70
i+            sqlite3 database.sqlite	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+    if [ "$?" -ne 0 ]	Err	bitreich.org	70
i+    then	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+    else	Err	bitreich.org	70
i+        exit 0	Err	bitreich.org	70
i+    fi	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+    printf "SELECT id from collection;" | \	Err	bitreich.org	70
i+            sqlite3 database.sqlite	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+    sqlite3 database.sqlite 'PRAGMA table_info(collection)' | \	Err	bitreich.org	70
i+                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+# 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+    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+        # add a column if it doesn't exist	Err	bitreich.org	70
i+        if [ -z "$(sqlite3 database.sqlite 'PRAGMA table_info(collection);' | grep "|${ATTRIBUTE}|")" ]	Err	bitreich.org	70
i+        then	Err	bitreich.org	70
i+                printf 'ALTER TABLE collection ADD COLUMN %s text;' "${ATTRIBUTE}" | \	Err	bitreich.org	70
i+                        sqlite3 database.sqlite	Err	bitreich.org	70
i+        fi	Err	bitreich.org	70
i+        printf "INSERT INTO collection('id') VALUES ('%s');" "$ID" | \	Err	bitreich.org	70
i+                sqlite3 database.sqlite >/dev/null 2>&1	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        printf "UPDATE collection SET %s = '%s' WHERE id = '%s';" \	Err	bitreich.org	70
i+                "$ATTRIBUTE" "$VALUE" "$ID" | \	Err	bitreich.org	70
i+                sqlite3 database.sqlite	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+    printf "SELECT id FROM collection WHERE %s = '%s';" \	Err	bitreich.org	70
i+                "$1" "$2" | \	Err	bitreich.org	70
i+                sqlite3 database.sqlite	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+    printf "SELECT id,%s as attribute FROM collection WHERE attribute <> '';" \	Err	bitreich.org	70
i+                "$1" | \	Err	bitreich.org	70
i+                sqlite3 database.sqlite	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 export" \	Err	bitreich.org	70
i+           "cdb show [identifier]" \	Err	bitreich.org	70
i+           "cdb search [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+	Err	bitreich.org	70
i+if [ "$1" = "export" ] ; then export_csv ; fi	Err	bitreich.org	70
i+if [ "$1" = "rm" ] && [ "$#" -eq 2 ] ; then delete "$2" ; fi	Err	bitreich.org	70
i+if [ "$1" = "help" ]                 ; then usage ; fi	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# dealing with identifiers	Err	bitreich.org	70
i+if [ "$1" = "show" ]	Err	bitreich.org	70
i+then	Err	bitreich.org	70
i+    if [ "$#" -eq 1 ]; then show_list ; fi	Err	bitreich.org	70
i+    if [ "$#" -eq 2 ]; then show "$2" ; fi	Err	bitreich.org	70
i+fi	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# dealing with attributes	Err	bitreich.org	70
i+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+fi	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+if [ "$#" -ge 3 ]; then add_value "$@" ; fi	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+usage	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/dossier/commit/67938e405b6efa...
Content-Typetext/plain; charset=utf-8