iRename into dossier - 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 a1a5058a5a89c4d2b50fbf778d7a12979b097359 /scm/dossier/commit/a1a5058a5a89c4d2b50fbf778d7a12979b097359.gph bitreich.org 70
1parent e3c84c638f14e965a28fc7c610261d37036ed184 /scm/dossier/commit/e3c84c638f14e965a28fc7c610261d37036ed184.gph bitreich.org 70
hAuthor: Solene Rapenne <solene@perso.pw> URL:mailto:solene@perso.pw bitreich.org 70
iDate: Tue, 24 Jul 2018 10:31:00 +0200 Err bitreich.org 70
i Err bitreich.org 70
iRename into dossier Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M Makefile | 4 ++-- Err bitreich.org 70
i M README | 38 ++++++++++++++++---------------- Err bitreich.org 70
i D cdb | 277 ------------------------------- Err bitreich.org 70
i D cdb.1 | 124 ------------------------------- Err bitreich.org 70
i D cdb_sqlite | 142 ------------------------------- Err bitreich.org 70
i A dossier | 277 +++++++++++++++++++++++++++++++ Err bitreich.org 70
i A dossier.1 | 124 +++++++++++++++++++++++++++++++ Err bitreich.org 70
i Err bitreich.org 70
i7 files changed, 422 insertions(+), 564 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/Makefile b/Makefile /scm/dossier/file/Makefile.gph bitreich.org 70
i@@ -1,10 +1,10 @@ Err bitreich.org 70
i-# cdb – a console collection manage Err bitreich.org 70
i+# dossier – a console collection manage Err bitreich.org 70
i # See the LICENSE file for copyright and license details. Err bitreich.org 70
i .POSIX: Err bitreich.org 70
i Err bitreich.org 70
i VERSION = 0.1 Err bitreich.org 70
i Err bitreich.org 70
i-BIN = cdb Err bitreich.org 70
i+BIN = dossier Err bitreich.org 70
i PREFIX = /usr Err bitreich.org 70
i BINDIR = ${PREFIX}/bin Err bitreich.org 70
i MANDIR = ${PREFIX}/share/man Err bitreich.org 70
1diff --git a/README b/README /scm/dossier/file/README.gph bitreich.org 70
i@@ -1,41 +1,41 @@ Err bitreich.org 70
i-How to use cdb Err bitreich.org 70
i-============== Err bitreich.org 70
i+How to use dossier Err bitreich.org 70
i+================== Err bitreich.org 70
i Err bitreich.org 70
i $ mkdir -p ~/collections/games Err bitreich.org 70
i- $ cdb collections register ~/collections/games games Err bitreich.org 70
i- $ cdb collections games Err bitreich.org 70
i- $ cdb collections Err bitreich.org 70
i+ $ dossier collections register ~/collections/games games Err bitreich.org 70
i+ $ dossier collections games Err bitreich.org 70
i+ $ dossier collections Err bitreich.org 70
i games * Err bitreich.org 70
i- $ cdb supertux rate 5 multiplayer yes Err bitreich.org 70
i- $ cdb nexuiz rate 9 mutpliplayer yes Err bitreich.org 70
i- $ cdb minetest rate 10 multiplayer yes Err bitreich.org 70
i- $ cdb opensonic rate 2 Err bitreich.org 70
i- $ cdb openmw multiplayer no rate 10 style rpg Err bitreich.org 70
i- $ cdb search multiplayer Err bitreich.org 70
i+ $ dossier supertux rate 5 multiplayer yes Err bitreich.org 70
i+ $ dossier nexuiz rate 9 mutpliplayer yes Err bitreich.org 70
i+ $ dossier minetest rate 10 multiplayer yes Err bitreich.org 70
i+ $ dossier opensonic rate 2 Err bitreich.org 70
i+ $ dossier openmw multiplayer no rate 10 style rpg Err bitreich.org 70
i+ $ dossier search multiplayer Err bitreich.org 70
i supertux:yes Err bitreich.org 70
i nexuiz:yes Err bitreich.org 70
i minetest:yes Err bitreich.org 70
i openmw:no Err bitreich.org 70
i- $ cdb search multiplayer no Err bitreich.org 70
i+ $ dossier search multiplayer no Err bitreich.org 70
i openmw Err bitreich.org 70
i- $ cdb search multiplayer yes rate 5 Err bitreich.org 70
i+ $ dossier search multiplayer yes rate 5 Err bitreich.org 70
i supertux Err bitreich.org 70
i- $ cdb supertux rate 6 Err bitreich.org 70
i- $ cdb show Err bitreich.org 70
i+ $ dossier supertux rate 6 Err bitreich.org 70
i+ $ dossier show Err bitreich.org 70
i supertux (2) Err bitreich.org 70
i nexuiz (2) Err bitreich.org 70
i minetest (2) Err bitreich.org 70
i openmw (3) Err bitreich.org 70
i opensonic (1) Err bitreich.org 70
i- $ cdb show openmw Err bitreich.org 70
i+ $ dossier show openmw Err bitreich.org 70
i openmw: Err bitreich.org 70
i multiplayer: no Err bitreich.org 70
i style: rpg Err bitreich.org 70
i rate: 10 Err bitreich.org 70
i- $ cdb opensonic Err bitreich.org 70
i+ $ dossier opensonic Err bitreich.org 70
i opensonic: Err bitreich.org 70
i rate: 2 Err bitreich.org 70
i- $ cdb opensonic rate 3 Err bitreich.org 70
i- $ cdb opensonic Err bitreich.org 70
i+ $ dossier opensonic rate 3 Err bitreich.org 70
i+ $ dossier opensonic Err bitreich.org 70
i opensonic: Err bitreich.org 70
i rate: 3 Err bitreich.org 70
1diff --git a/cdb b/cdb /scm/dossier/file/cdb.gph bitreich.org 70
i@@ -1,277 +0,0 @@ Err bitreich.org 70
i-#!/bin/sh Err bitreich.org 70
i- Err bitreich.org 70
i-REPOSITORY="${HOME}/.collections" Err bitreich.org 70
i-mkdir -p "$REPOSITORY" Err bitreich.org 70
i-test -f "${REPOSITORY}/current" && . "${REPOSITORY}/current" 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="${REPOSITORY}/${CONTEXT}/" Err bitreich.org 70
i- cd "$REPO" 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- cd "${REPO}" Err bitreich.org 70
i- SEEN=0 Err bitreich.org 70
i- for attribute in * Err bitreich.org 70
i- do Err bitreich.org 70
i- if [ -f "${attribute}/${1}" ] Err bitreich.org 70
i- then Err bitreich.org 70
i- if [ "$SEEN" -eq 0 ] Err bitreich.org 70
i- then Err bitreich.org 70
i- printf "%s:\n" "$1" Err bitreich.org 70
i- SEEN=1 Err bitreich.org 70
i- fi Err bitreich.org 70
i- printf "%15s: %s\n" ${attribute} "$(cat "${attribute}/${1}")" Err bitreich.org 70
i- fi Err bitreich.org 70
i- done Err bitreich.org 70
i- if [ "$SEEN" -eq 1 ] 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- cd "${REPO}" Err bitreich.org 70
i- Err bitreich.org 70
i- # display header Err bitreich.org 70
i- printf '"identifier",' Err bitreich.org 70
i- find . -name '.git' -prune -o -type f -print | cut -d '/' -f 2 | sort | uniq | while read attr Err bitreich.org 70
i- do Err bitreich.org 70
i- printf '"%s",' $attr Err bitreich.org 70
i- done Err bitreich.org 70
i- printf '\n' Err bitreich.org 70
i- Err bitreich.org 70
i- # print database Err bitreich.org 70
i- find . -name '.git' -prune -o -type f -print | cut -d '/' -f 3 | sort | uniq | while read id Err bitreich.org 70
i- do Err bitreich.org 70
i- printf '"%s",' "$id" Err bitreich.org 70
i- find . -name '.git' -prune -o -type f -print | cut -d '/' -f 2 | sort | uniq | while read attr Err bitreich.org 70
i- do Err bitreich.org 70
i- # for faster processing, we do not check existence of file before Err bitreich.org 70
i- awk '{ printf "\"%s\",",$0}' "${attr}/${id}" 2>/dev/null \ Err bitreich.org 70
i- || printf '"",' Err bitreich.org 70
i- done Err bitreich.org 70
i- printf '\n' Err bitreich.org 70
i- done Err bitreich.org 70
i- IFS=$OLDIFS Err bitreich.org 70
i- exit 0 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- cd "${REPO}" Err bitreich.org 70
i- SEEN=0 Err bitreich.org 70
i- for attribute in * Err bitreich.org 70
i- do Err bitreich.org 70
i- if [ -f "${attribute}/${1}" ] Err bitreich.org 70
i- then Err bitreich.org 70
i- git rm "${attribute}/${1}" Err bitreich.org 70
i- git commit -m "Delete ${attribute} ${1}" "${attribute}/${1}" Err bitreich.org 70
i- rmdir "${attribute}" 2> /dev/null Err bitreich.org 70
i- SEEN=1 Err bitreich.org 70
i- fi Err bitreich.org 70
i- done Err bitreich.org 70
i- Err bitreich.org 70
i- # did we find it? Err bitreich.org 70
i- if [ "$SEEN" -eq 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- cd "${REPO}" Err bitreich.org 70
i- find . -name '.git' -prune -o -type f -print | cut -d '/' -f 3 | sort | uniq -c | \ Err bitreich.org 70
i- awk '{ for(i=2;i<=NF;i=i+1) { printf "%s ", $i } Err bitreich.org 70
i- printf "(%i)\n", $1 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-# displays attributes used Err bitreich.org 70
i-show_attributes() { Err bitreich.org 70
i- cd "${REPO}" Err bitreich.org 70
i- find . -name '.git' -prune -o -type f -print | cut -d '/' -f 2 | sort | uniq -c | \ Err bitreich.org 70
i- awk '{ for(i=2;i<=NF;i=i+1) { printf "%s ", $i } Err bitreich.org 70
i- printf "(%i)\n", $1 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-# 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- cd "$REPO" 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- mkdir -p "$ATTRIBUTE" Err bitreich.org 70
i- printf '%s' "$VALUE" > "${ATTRIBUTE}/${ID}" Err bitreich.org 70
i- git add "${ATTRIBUTE}/${ID}" Err bitreich.org 70
i- git commit -m "Modify ${ATTRIBUTE} on ${ID}" "${ATTRIBUTE}/${ID}" 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- cd "$REPO" 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-# 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- cd "$REPO" Err bitreich.org 70
i- grep -r . "$1" | cut -d '/' -f 2- | sort 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- "Get help" \ Err bitreich.org 70
i- ": cdb help" \ Err bitreich.org 70
i- "" \ Err bitreich.org 70
i- "Export data as CSV" \ Err bitreich.org 70
i- ": cdb export" \ Err bitreich.org 70
i- "" \ Err bitreich.org 70
i- "Show collections, register collections, switch current collection" \ Err bitreich.org 70
i- ": cdb collections [register path name] [name]" \ Err bitreich.org 70
i- "" \ Err bitreich.org 70
i- "Show items and display informations about an item" \ Err bitreich.org 70
i- ": cdb show [identifier]" \ Err bitreich.org 70
i- "" \ Err bitreich.org 70
i- "Look at attributes, search items having some values" \ Err bitreich.org 70
i- ": cdb search [attribute [value]] ... [attribute [value]] ..." \ Err bitreich.org 70
i- "" \ Err bitreich.org 70
i- "Add / Modify attributes values on an item" \ 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 "${REPOSITORY}/${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 > "${REPOSITORY}/current" 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- ls "${REPOSITORY}" | grep -v 'current' | sed "s/^${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 "${REPOSITORY}/${2}" && rm "${REPOSITORY}/${2}" Err bitreich.org 70
i- ln -s "${1}" "${REPOSITORY}/${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- 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 [ "$#" -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-# no command, maybe it's an item, try it Err bitreich.org 70
i-if [ "$#" -eq 1 ]; then show "$1" ; fi Err bitreich.org 70
i- Err bitreich.org 70
i-usage Err bitreich.org 70
1diff --git a/cdb.1 b/cdb.1 /scm/dossier/file/cdb.1.gph bitreich.org 70
i@@ -1,124 +0,0 @@ Err bitreich.org 70
i-.Dd $Mdocdate: July 18 2018 $ Err bitreich.org 70
i-.Dt CDB 1 Err bitreich.org 70
i-.Os Err bitreich.org 70
i-.Sh NAAME Err bitreich.org 70
i-.Nm cdb Err bitreich.org 70
i-.Nd a console collection manager Err bitreich.org 70
i-.Sh SYNOPSIS Err bitreich.org 70
i-.Nm Err bitreich.org 70
i-.Op Cm show | Cm help | Cm export | Cm collections | Cm search | Ar item Op attribute value Err bitreich.org 70
i-.Sh DESCRIPTION Err bitreich.org 70
i-.Pp Err bitreich.org 70
i-.Nm Err bitreich.org 70
i-is a tool to register "items" into collections with metadata. Allowing to Err bitreich.org 70
i-keep tracks of collections like wine, tea, video games, movie, music etc... Err bitreich.org 70
i-.Pp Err bitreich.org 70
i-Collections are a set of items, attributes and values. Err bitreich.org 70
i-.Nm Err bitreich.org 70
i-allows to manage different collections to not mix everything. Err bitreich.org 70
i-.Bl -tag -width Ds Err bitreich.org 70
i-.It Nm Cm help Err bitreich.org 70
i-Show help Err bitreich.org 70
i-.It Nm Cm show Op item-name Err bitreich.org 70
i-the command Err bitreich.org 70
i-.Cm show Err bitreich.org 70
i-without argument will display the list of items in the current collection. Err bitreich.org 70
i-.Pp Err bitreich.org 70
i-With the argument Err bitreich.org 70
i-.Ar item-name Err bitreich.org 70
i-it will show all the attributes known for that item. Err bitreich.org 70
i-.It Nm Cm export Err bitreich.org 70
i-Export the data of the current collection as CSV (Comma Separated Values). Err bitreich.org 70
i-.It Nm Cm collections Oo collection Oc | Oo register Pa full-path Ar collection-name Oc Err bitreich.org 70
i-the command Err bitreich.org 70
i-.Cm collections Err bitreich.org 70
i-with no argument will show the list of collections that Err bitreich.org 70
i-.Nm Err bitreich.org 70
i-is aware of aka the collections that have been registered. The collection currently in use Err bitreich.org 70
i-will be displayed with a Err bitreich.org 70
i-.Sy * Err bitreich.org 70
i-symbol after the name. Err bitreich.org 70
i-.Pp Err bitreich.org 70
i-the command Err bitreich.org 70
i-.Cm collections Err bitreich.org 70
i-with one parameter Err bitreich.org 70
i-will switch the current collection in use to the collection Err bitreich.org 70
i-.Ar collection. Err bitreich.org 70
i-.Pp Err bitreich.org 70
i-the command Err bitreich.org 70
i-.Cm collections Err bitreich.org 70
i-using the parameter Err bitreich.org 70
i-.Ar register Err bitreich.org 70
i-will make Err bitreich.org 70
i-.Nm Err bitreich.org 70
i-aware of a collection, this requires the full path Err bitreich.org 70
i-.Ar full-path Err bitreich.org 70
i-where is stored the collection and a name Err bitreich.org 70
i-.Ar collection-name Err bitreich.org 70
i-to identify it. When a collection is registered, Err bitreich.org 70
i-.Nm Err bitreich.org 70
i-will initialize a Err bitreich.org 70
i-.Xr git 1 Err bitreich.org 70
i-repository in it if possible. Err bitreich.org 70
i-.It Nm Cm search Oo attribute Oo value Oc Oc Op attribute value Err bitreich.org 70
i-the command Err bitreich.org 70
i-.Cm search Err bitreich.org 70
i-with no argument will return the list of known attributes in the collections with the Err bitreich.org 70
i-number of items for which the attribute is set. Err bitreich.org 70
i-.Pp Err bitreich.org 70
i-the command Err bitreich.org 70
i-.Nm search Err bitreich.org 70
i-with one parameter will return the list of the items for which Err bitreich.org 70
i-.Ar attribute Err bitreich.org 70
i-has been recorded and the associated value, using a semi colon as separator. Err bitreich.org 70
i-.Pp Err bitreich.org 70
i-The command Err bitreich.org 70
i-.Nm search Err bitreich.org 70
i-with two parameters will return the list of the items having the value Err bitreich.org 70
i-.Ar value Err bitreich.org 70
i-in the attribute Err bitreich.org 70
i-.Ar attribute. Err bitreich.org 70
i-.Pp Err bitreich.org 70
i-Using more arguments will return the list of the items matching all the conditions of values in attributes. Err bitreich.org 70
i-.It Nm Ar item-name Err bitreich.org 70
i-shows all the attributes known for that item. Err bitreich.org 70
i-.Pp Err bitreich.org 70
i-In case you need to use an Err bitreich.org 70
i-.Ar item-name Err bitreich.org 70
i-like "collections" or any other name being a Err bitreich.org 70
i-.Nm Err bitreich.org 70
i-command, the command Err bitreich.org 70
i-.Cm show Ar item-name Err bitreich.org 70
i-is required. Err bitreich.org 70
i-.It Nm Ar item-name Ar attribute Ar value Op Ar attribute2 Ar value2 Ar ... Err bitreich.org 70
i-Associate the value Err bitreich.org 70
i-.Ar value Err bitreich.org 70
i-to the attribute Err bitreich.org 70
i-.Ar attribute Err bitreich.org 70
i-for item Err bitreich.org 70
i-.Ar item-name. Err bitreich.org 70
i-Multiples couple of Err bitreich.org 70
i-.Ar attribute value Err bitreich.org 70
i-can be used on the same command line to define multiples values. Err bitreich.org 70
i-.Pp Err bitreich.org 70
i-This is the way to add and update data inside a collection. Err bitreich.org 70
i-.Pp Err bitreich.org 70
i-Every modification is recorded with Err bitreich.org 70
i-.Xr git 1 . Err bitreich.org 70
i- Err bitreich.org 70
i-.Sh FILES Err bitreich.org 70
i-.Bl -tag -width "~/.collections" -compact Err bitreich.org 70
i-.It Pa ~/.collections Err bitreich.org 70
i-The directory where Err bitreich.org 70
i-.Nm Err bitreich.org 70
i-stores the collections registered as symlinks to their full path. Err bitreich.org 70
i-.Sh EXIT Err bitreich.org 70
i-.Ex -std cdb Err bitreich.org 70
i-.Sh SEE ALSO Err bitreich.org 70
i-.Xr git 1 Err bitreich.org 70
i-.Sh Authors Err bitreich.org 70
i-.An -nosplit Err bitreich.org 70
i-The Err bitreich.org 70
i-.Nm Err bitreich.org 70
i-program was written by Err bitreich.org 70
i-.An Solène Rapenne Aq Mt solene@perso.pw Err bitreich.org 70
1diff --git a/cdb_sqlite b/cdb_sqlite /scm/dossier/file/cdb_sqlite.gph bitreich.org 70
i@@ -1,142 +0,0 @@ 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
1diff --git a/dossier b/dossier /scm/dossier/file/dossier.gph bitreich.org 70
i@@ -0,0 +1,277 @@ Err bitreich.org 70
i+#!/bin/sh Err bitreich.org 70
i+ Err bitreich.org 70
i+REPOSITORY="${HOME}/.collections" Err bitreich.org 70
i+mkdir -p "$REPOSITORY" Err bitreich.org 70
i+test -f "${REPOSITORY}/current" && . "${REPOSITORY}/current" 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="${REPOSITORY}/${CONTEXT}/" Err bitreich.org 70
i+ cd "$REPO" 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+ cd "${REPO}" Err bitreich.org 70
i+ SEEN=0 Err bitreich.org 70
i+ for attribute in * Err bitreich.org 70
i+ do Err bitreich.org 70
i+ if [ -f "${attribute}/${1}" ] Err bitreich.org 70
i+ then Err bitreich.org 70
i+ if [ "$SEEN" -eq 0 ] Err bitreich.org 70
i+ then Err bitreich.org 70
i+ printf "%s:\n" "$1" Err bitreich.org 70
i+ SEEN=1 Err bitreich.org 70
i+ fi Err bitreich.org 70
i+ printf "%15s: %s\n" ${attribute} "$(cat "${attribute}/${1}")" Err bitreich.org 70
i+ fi Err bitreich.org 70
i+ done Err bitreich.org 70
i+ if [ "$SEEN" -eq 1 ] 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+ cd "${REPO}" Err bitreich.org 70
i+ Err bitreich.org 70
i+ # display header Err bitreich.org 70
i+ printf '"identifier",' Err bitreich.org 70
i+ find . -name '.git' -prune -o -type f -print | cut -d '/' -f 2 | sort | uniq | while read attr Err bitreich.org 70
i+ do Err bitreich.org 70
i+ printf '"%s",' $attr Err bitreich.org 70
i+ done Err bitreich.org 70
i+ printf '\n' Err bitreich.org 70
i+ Err bitreich.org 70
i+ # print database Err bitreich.org 70
i+ find . -name '.git' -prune -o -type f -print | cut -d '/' -f 3 | sort | uniq | while read id Err bitreich.org 70
i+ do Err bitreich.org 70
i+ printf '"%s",' "$id" Err bitreich.org 70
i+ find . -name '.git' -prune -o -type f -print | cut -d '/' -f 2 | sort | uniq | while read attr Err bitreich.org 70
i+ do Err bitreich.org 70
i+ # for faster processing, we do not check existence of file before Err bitreich.org 70
i+ awk '{ printf "\"%s\",",$0}' "${attr}/${id}" 2>/dev/null \ Err bitreich.org 70
i+ || printf '"",' Err bitreich.org 70
i+ done Err bitreich.org 70
i+ printf '\n' Err bitreich.org 70
i+ done Err bitreich.org 70
i+ IFS=$OLDIFS Err bitreich.org 70
i+ exit 0 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+ cd "${REPO}" Err bitreich.org 70
i+ SEEN=0 Err bitreich.org 70
i+ for attribute in * Err bitreich.org 70
i+ do Err bitreich.org 70
i+ if [ -f "${attribute}/${1}" ] Err bitreich.org 70
i+ then Err bitreich.org 70
i+ git rm "${attribute}/${1}" Err bitreich.org 70
i+ git commit -m "Delete ${attribute} ${1}" "${attribute}/${1}" Err bitreich.org 70
i+ rmdir "${attribute}" 2> /dev/null Err bitreich.org 70
i+ SEEN=1 Err bitreich.org 70
i+ fi Err bitreich.org 70
i+ done Err bitreich.org 70
i+ Err bitreich.org 70
i+ # did we find it? Err bitreich.org 70
i+ if [ "$SEEN" -eq 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+ cd "${REPO}" Err bitreich.org 70
i+ find . -name '.git' -prune -o -type f -print | cut -d '/' -f 3 | sort | uniq -c | \ Err bitreich.org 70
i+ awk '{ for(i=2;i<=NF;i=i+1) { printf "%s ", $i } Err bitreich.org 70
i+ printf "(%i)\n", $1 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+# displays attributes used Err bitreich.org 70
i+show_attributes() { Err bitreich.org 70
i+ cd "${REPO}" Err bitreich.org 70
i+ find . -name '.git' -prune -o -type f -print | cut -d '/' -f 2 | sort | uniq -c | \ Err bitreich.org 70
i+ awk '{ for(i=2;i<=NF;i=i+1) { printf "%s ", $i } Err bitreich.org 70
i+ printf "(%i)\n", $1 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+# 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+ cd "$REPO" 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+ mkdir -p "$ATTRIBUTE" Err bitreich.org 70
i+ printf '%s' "$VALUE" > "${ATTRIBUTE}/${ID}" Err bitreich.org 70
i+ git add "${ATTRIBUTE}/${ID}" Err bitreich.org 70
i+ git commit -m "Modify ${ATTRIBUTE} on ${ID}" "${ATTRIBUTE}/${ID}" 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+ cd "$REPO" Err bitreich.org 70
i+ shift Err bitreich.org 70
i+ Err bitreich.org 70
i+ RESULT=$(mktemp /tmp/dossier.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+# 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+ cd "$REPO" Err bitreich.org 70
i+ grep -r . "$1" | cut -d '/' -f 2- | sort 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+ "Get help" \ Err bitreich.org 70
i+ ": dossier help" \ Err bitreich.org 70
i+ "" \ Err bitreich.org 70
i+ "Export data as CSV" \ Err bitreich.org 70
i+ ": dossier export" \ Err bitreich.org 70
i+ "" \ Err bitreich.org 70
i+ "Show collections, register collections, switch current collection" \ Err bitreich.org 70
i+ ": dossier collections [register path name] [name]" \ Err bitreich.org 70
i+ "" \ Err bitreich.org 70
i+ "Show items and display informations about an item" \ Err bitreich.org 70
i+ ": dossier show [identifier]" \ Err bitreich.org 70
i+ "" \ Err bitreich.org 70
i+ "Look at attributes, search items having some values" \ Err bitreich.org 70
i+ ": dossier search [attribute [value]] ... [attribute [value]] ..." \ Err bitreich.org 70
i+ "" \ Err bitreich.org 70
i+ "Add / Modify attributes values on an item" \ Err bitreich.org 70
i+ ": dossier 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 "${REPOSITORY}/${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 > "${REPOSITORY}/current" 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+ ls "${REPOSITORY}" | grep -v 'current' | sed "s/^${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 "${REPOSITORY}/${2}" && rm "${REPOSITORY}/${2}" Err bitreich.org 70
i+ ln -s "${1}" "${REPOSITORY}/${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+ 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 [ "$#" -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+# no command, maybe it's an item, try it Err bitreich.org 70
i+if [ "$#" -eq 1 ]; then show "$1" ; fi Err bitreich.org 70
i+ Err bitreich.org 70
i+usage Err bitreich.org 70
1diff --git a/dossier.1 b/dossier.1 /scm/dossier/file/dossier.1.gph bitreich.org 70
i@@ -0,0 +1,124 @@ Err bitreich.org 70
i+.Dd $Mdocdate: July 18 2018 $ Err bitreich.org 70
i+.Dt DOSSIER 1 Err bitreich.org 70
i+.Os Err bitreich.org 70
i+.Sh NAAME Err bitreich.org 70
i+.Nm dossier Err bitreich.org 70
i+.Nd a console collection manager Err bitreich.org 70
i+.Sh SYNOPSIS Err bitreich.org 70
i+.Nm Err bitreich.org 70
i+.Op Cm show | Cm help | Cm export | Cm collections | Cm search | Ar item Op attribute value Err bitreich.org 70
i+.Sh DESCRIPTION Err bitreich.org 70
i+.Pp Err bitreich.org 70
i+.Nm Err bitreich.org 70
i+is a tool to register "items" into collections with metadata. Allowing to Err bitreich.org 70
i+keep tracks of collections like wine, tea, video games, movie, music etc... Err bitreich.org 70
i+.Pp Err bitreich.org 70
i+Collections are a set of items, attributes and values. Err bitreich.org 70
i+.Nm Err bitreich.org 70
i+allows to manage different collections to not mix everything. Err bitreich.org 70
i+.Bl -tag -width Ds Err bitreich.org 70
i+.It Nm Cm help Err bitreich.org 70
i+Show help Err bitreich.org 70
i+.It Nm Cm show Op item-name Err bitreich.org 70
i+the command Err bitreich.org 70
i+.Cm show Err bitreich.org 70
i+without argument will display the list of items in the current collection. Err bitreich.org 70
i+.Pp Err bitreich.org 70
i+With the argument Err bitreich.org 70
i+.Ar item-name Err bitreich.org 70
i+it will show all the attributes known for that item. Err bitreich.org 70
i+.It Nm Cm export Err bitreich.org 70
i+Export the data of the current collection as CSV (Comma Separated Values). Err bitreich.org 70
i+.It Nm Cm collections Oo collection Oc | Oo register Pa full-path Ar collection-name Oc Err bitreich.org 70
i+the command Err bitreich.org 70
i+.Cm collections Err bitreich.org 70
i+with no argument will show the list of collections that Err bitreich.org 70
i+.Nm Err bitreich.org 70
i+is aware of aka the collections that have been registered. The collection currently in use Err bitreich.org 70
i+will be displayed with a Err bitreich.org 70
i+.Sy * Err bitreich.org 70
i+symbol after the name. Err bitreich.org 70
i+.Pp Err bitreich.org 70
i+the command Err bitreich.org 70
i+.Cm collections Err bitreich.org 70
i+with one parameter Err bitreich.org 70
i+will switch the current collection in use to the collection Err bitreich.org 70
i+.Ar collection. Err bitreich.org 70
i+.Pp Err bitreich.org 70
i+the command Err bitreich.org 70
i+.Cm collections Err bitreich.org 70
i+using the parameter Err bitreich.org 70
i+.Ar register Err bitreich.org 70
i+will make Err bitreich.org 70
i+.Nm Err bitreich.org 70
i+aware of a collection, this requires the full path Err bitreich.org 70
i+.Ar full-path Err bitreich.org 70
i+where is stored the collection and a name Err bitreich.org 70
i+.Ar collection-name Err bitreich.org 70
i+to identify it. When a collection is registered, Err bitreich.org 70
i+.Nm Err bitreich.org 70
i+will initialize a Err bitreich.org 70
i+.Xr git 1 Err bitreich.org 70
i+repository in it if possible. Err bitreich.org 70
i+.It Nm Cm search Oo attribute Oo value Oc Oc Op attribute value Err bitreich.org 70
i+the command Err bitreich.org 70
i+.Cm search Err bitreich.org 70
i+with no argument will return the list of known attributes in the collections with the Err bitreich.org 70
i+number of items for which the attribute is set. Err bitreich.org 70
i+.Pp Err bitreich.org 70
i+the command Err bitreich.org 70
i+.Nm search Err bitreich.org 70
i+with one parameter will return the list of the items for which Err bitreich.org 70
i+.Ar attribute Err bitreich.org 70
i+has been recorded and the associated value, using a semi colon as separator. Err bitreich.org 70
i+.Pp Err bitreich.org 70
i+The command Err bitreich.org 70
i+.Nm search Err bitreich.org 70
i+with two parameters will return the list of the items having the value Err bitreich.org 70
i+.Ar value Err bitreich.org 70
i+in the attribute Err bitreich.org 70
i+.Ar attribute. Err bitreich.org 70
i+.Pp Err bitreich.org 70
i+Using more arguments will return the list of the items matching all the conditions of values in attributes. Err bitreich.org 70
i+.It Nm Ar item-name Err bitreich.org 70
i+shows all the attributes known for that item. Err bitreich.org 70
i+.Pp Err bitreich.org 70
i+In case you need to use an Err bitreich.org 70
i+.Ar item-name Err bitreich.org 70
i+like "collections" or any other name being a Err bitreich.org 70
i+.Nm Err bitreich.org 70
i+command, the command Err bitreich.org 70
i+.Cm show Ar item-name Err bitreich.org 70
i+is required. Err bitreich.org 70
i+.It Nm Ar item-name Ar attribute Ar value Op Ar attribute2 Ar value2 Ar ... Err bitreich.org 70
i+Associate the value Err bitreich.org 70
i+.Ar value Err bitreich.org 70
i+to the attribute Err bitreich.org 70
i+.Ar attribute Err bitreich.org 70
i+for item Err bitreich.org 70
i+.Ar item-name. Err bitreich.org 70
i+Multiples couple of Err bitreich.org 70
i+.Ar attribute value Err bitreich.org 70
i+can be used on the same command line to define multiples values. Err bitreich.org 70
i+.Pp Err bitreich.org 70
i+This is the way to add and update data inside a collection. Err bitreich.org 70
i+.Pp Err bitreich.org 70
i+Every modification is recorded with Err bitreich.org 70
i+.Xr git 1 . Err bitreich.org 70
i+ Err bitreich.org 70
i+.Sh FILES Err bitreich.org 70
i+.Bl -tag -width "~/.collections" -compact Err bitreich.org 70
i+.It Pa ~/.collections Err bitreich.org 70
i+The directory where Err bitreich.org 70
i+.Nm Err bitreich.org 70
i+stores the collections registered as symlinks to their full path. Err bitreich.org 70
i+.Sh EXIT Err bitreich.org 70
i+.Ex -std dossier Err bitreich.org 70
i+.Sh SEE ALSO Err bitreich.org 70
i+.Xr git 1 Err bitreich.org 70
i+.Sh Authors Err bitreich.org 70
i+.An -nosplit Err bitreich.org 70
i+The Err bitreich.org 70
i+.Nm Err bitreich.org 70
i+program was written by Err bitreich.org 70
i+.An Solène Rapenne Aq Mt solene@perso.pw Err bitreich.org 70
.
Response:
text/plain