iallow adding/switching collections - 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 3e78a7de88f0fe245aeb084b52a8325832b1968e /scm/dossier/commit/3e78a7de88f0fe245aeb084b52a8325832b1968e.gph bitreich.org 70 1parent 9da2c6c29fe7d7b2c1b86bdccd5544e04b54913d /scm/dossier/commit/9da2c6c29fe7d7b2c1b86bdccd5544e04b54913d.gph bitreich.org 70 hAuthor: Solene Rapenne URL:mailto:solene@perso.pw bitreich.org 70 iDate: Wed, 18 Jul 2018 12:02:23 +0200 Err bitreich.org 70 i Err bitreich.org 70 iallow adding/switching collections Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M cdb | 64 +++++++++++++++++++++++++++++-- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 60 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,13 +1,18 @@ Err bitreich.org 70 i #!/bin/sh Err bitreich.org 70 i 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+mkdir -p ~/.collections Err bitreich.org 70 i+test -f ~/.collections/context && . ~/.collections/context Err bitreich.org 70 i+ Err bitreich.org 70 i+if [ -n "$CONTEXT" ] Err bitreich.org 70 i then Err bitreich.org 70 i+ REPO="${HOME}/.collections/${CONTEXT}/" Err bitreich.org 70 i cd "$REPO" Err bitreich.org 70 i- git init Err bitreich.org 70 i+ test ! -d ".git" && git init Err bitreich.org 70 i+else Err bitreich.org 70 i+ printf 'No current collection in use\n' Err bitreich.org 70 i fi 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@@ -183,12 +188,57 @@ 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 collections [register path name] [name]" \ Err bitreich.org 70 i "cdb show [identifier]" \ 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 Err bitreich.org 70 i+switch() { Err bitreich.org 70 i+ if [ ! -L "${HOME}/.collections/${1}" ] Err bitreich.org 70 i+ then Err bitreich.org 70 i+ printf 'Collection %s is not registered\n' "${1}" Err bitreich.org 70 i+ exit 9 Err bitreich.org 70 i+ else Err bitreich.org 70 i+ printf 'Switching to collection %s\n' "${1}" Err bitreich.org 70 i+ printf 'CONTEXT=%s\n' $1 > ~/.collections/context Err bitreich.org 70 i+ exit $? Err bitreich.org 70 i+ fi Err bitreich.org 70 i+} Err bitreich.org 70 i+ Err bitreich.org 70 i+collections() { Err bitreich.org 70 i+ if [ -n "$CONTEXT" ] Err bitreich.org 70 i+ then Err bitreich.org 70 i+ printf 'Currently using collection: %s\n' "${CONTEXT}" Err bitreich.org 70 i+ else Err bitreich.org 70 i+ printf 'No collection currently in use\n' Err bitreich.org 70 i+ fi Err bitreich.org 70 i+ printf 'Collections registerd in ~/.collections/:\n' Err bitreich.org 70 i+ ls ~/.collections/ | grep -v 'context' Err bitreich.org 70 i+ exit 0 Err bitreich.org 70 i+} Err bitreich.org 70 i+ Err bitreich.org 70 i+# create symlink to register a collection Err bitreich.org 70 i+# $1 absolute path to collection Err bitreich.org 70 i+# $2 name of collection Err bitreich.org 70 i+register() { Err bitreich.org 70 i+ set -x Err bitreich.org 70 i+ if [ -d "${1}" ] Err bitreich.org 70 i+ then Err bitreich.org 70 i+ if ! expr "${1}" : '^/' Err bitreich.org 70 i+ then Err bitreich.org 70 i+ printf 'Aborting, the path of the collection must be an absolute path. %s is not valid\n' "${1}" Err bitreich.org 70 i+ fi Err bitreich.org 70 i+ test -L "${HOME}/.collections/${2}" && rm "${HOME}/.collections/${2}" Err bitreich.org 70 i+ ln -s "${1}" "${HOME}/.collections/${2}" Err bitreich.org 70 i+ exit 0 Err bitreich.org 70 i+ else Err bitreich.org 70 i+ printf 'Aborting, %s is not a directory\n' "${2}" Err bitreich.org 70 i+ exit 8 Err bitreich.org 70 i+ fi 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@@ -208,6 +258,12 @@ then 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 [ "$1" = "collections" ]; then Err bitreich.org 70 i+ if [ "$#" -eq 1 ]; then collections ; fi Err bitreich.org 70 i+ if [ "$#" -eq 2 ]; then switch "$2" ; fi Err bitreich.org 70 i+ if [ "$2" = "register" ] && [ "$#" -eq 4 ]; then register "$3" "$4" ; 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 .