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