iAdd import from csv function - 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 c40faa46c5be77e015efa65ccc8d1a08995b6e33 /scm/dossier/commit/c40faa46c5be77e015efa65ccc8d1a08995b6e33.gph bitreich.org 70 1parent 5b178df77317dffde3e401fce4965076b96d6553 /scm/dossier/commit/5b178df77317dffde3e401fce4965076b96d6553.gph bitreich.org 70 hAuthor: Solene Rapenne URL:mailto:solene@perso.pw bitreich.org 70 iDate: Thu, 2 Aug 2018 16:22:00 +0200 Err bitreich.org 70 i Err bitreich.org 70 iAdd import from csv function Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M dossier | 30 ++++++++++++++++++++++++++++++ Err bitreich.org 70 i M dossier.1 | 9 ++++++++- Err bitreich.org 70 i Err bitreich.org 70 i2 files changed, 38 insertions(+), 1 deletion(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/dossier b/dossier /scm/dossier/file/dossier.gph bitreich.org 70 i@@ -58,6 +58,32 @@ show_attributes_values() { Err bitreich.org 70 i exit 0 Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i+# import data from a csv Err bitreich.org 70 i+# $1 is the file to import Err bitreich.org 70 i+import_csv() { Err bitreich.org 70 i+ awk -F "," '{ Err bitreich.org 70 i+ if(NR==1) { Err bitreich.org 70 i+ for(i=1;i<=NF;i=i+1) { Err bitreich.org 70 i+ headers[i] = $i Err bitreich.org 70 i+ } Err bitreich.org 70 i+ } else { Err bitreich.org 70 i+ out = $1; Err bitreich.org 70 i+ for(i=2;i<=NF;i=i+1) { Err bitreich.org 70 i+ if(! match($i,/^""$/) && $i !="") { Err bitreich.org 70 i+ out = out " "headers[i]" "$i; Err bitreich.org 70 i+ } Err bitreich.org 70 i+ } Err bitreich.org 70 i+ if(out==$1) { Err bitreich.org 70 i+ print "empty" Err bitreich.org 70 i+ } else { Err bitreich.org 70 i+ out=out "\n" Err bitreich.org 70 i+ print out Err bitreich.org 70 i+ system("dossier "out) Err bitreich.org 70 i+ } Err bitreich.org 70 i+ } Err bitreich.org 70 i+ }' "$1" 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@@ -218,6 +244,9 @@ usage() { 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+ "Import data from CSV" \ Err bitreich.org 70 i+ ": dossier import file.csv" \ 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@@ -268,6 +297,7 @@ register() { Err bitreich.org 70 i fi Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i+if [ "$1" = "import" ] && [ -f "${OLDPWD}/${2}" ]; then import_csv "${OLDPWD}/${2}" ; fi 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 1diff --git a/dossier.1 b/dossier.1 /scm/dossier/file/dossier.1.gph bitreich.org 70 i@@ -6,7 +6,7 @@ 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 rm | Cm search | Ar item Op attribute value Err bitreich.org 70 i+.Op Cm show | Cm import Ar file | Cm help | Cm export | Cm collections | Cm rm | 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@@ -37,6 +37,13 @@ Remove item Err bitreich.org 70 i from the collection. 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 import Ar file Err bitreich.org 70 i+Import the data from Err bitreich.org 70 i+.Ar file Err bitreich.org 70 i+using the exact same format as the export (no newline in a field, fields name in Err bitreich.org 70 i+the first line, values with spaces should be quoted). This is very useful for a Err bitreich.org 70 i+batch import or if you want to export the data to a spreadsheet tool to Err bitreich.org 70 i+manipulate the values and then importing back. 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 .