SMOLNET PORTAL home about changes
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 <solene@perso.pw>	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
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/dossier/commit/c40faa46c5be77...
Content-Typetext/plain; charset=utf-8