From 761936bad53ef61ba95b0d99f3560a25ea239e13 Mon Sep 17 00:00:00 2001 From: Araq Date: Thu, 31 May 2012 01:35:13 +0200 Subject: [PATCH] niminst: use 'set -e'; failing to copy docs and data is no installation error --- tests/reject/tenummix.nim | 2 ++ todo.txt | 1 - tools/niminst/buildsh.tmpl | 7 +++++-- tools/niminst/install.tmpl | 36 +++++++++++++++++++++--------------- 4 files changed, 28 insertions(+), 18 deletions(-) diff --git a/tests/reject/tenummix.nim b/tests/reject/tenummix.nim index 52d4f39d73..f32eb82a77 100644 --- a/tests/reject/tenummix.nim +++ b/tests/reject/tenummix.nim @@ -1,4 +1,6 @@ discard """ + file: "system.nim" + line: 640 errormsg: "type mismatch" """ diff --git a/todo.txt b/todo.txt index 31b8c7268d..ee761219c2 100755 --- a/todo.txt +++ b/todo.txt @@ -1,7 +1,6 @@ version 0.9.0 ============= -- fix the installer - implement 'gorge' - make templates hygienic by default: try to gensym() everything in the 'block' of a template diff --git a/tools/niminst/buildsh.tmpl b/tools/niminst/buildsh.tmpl index 936378de23..a9c99a4043 100755 --- a/tools/niminst/buildsh.tmpl +++ b/tools/niminst/buildsh.tmpl @@ -3,6 +3,9 @@ # result = "#! /bin/sh\n# Generated from niminst\n" & # "# Template is in tools/buildsh.tmpl\n" & # "# To regenerate run ``niminst csource`` or ``koch csource``\n" + +set -e + while : do case "$1" in @@ -108,11 +111,11 @@ case $myos in # var linkCmd = "" # for f in items(c.cfiles[osA][cpuA]): echo "$CC $COMP_FLAGS -Ibuild -c ?{f} -o ?{changeFileExt(f, "o")}" - $CC $COMP_FLAGS -Ibuild -c ?{f} -o ?{changeFileExt(f, "o")} || exit 1 + $CC $COMP_FLAGS -Ibuild -c ?{f} -o ?{changeFileExt(f, "o")} # add(linkCmd, " \\\n" & changeFileExt(f, "o")) # end for echo "$LINKER $LINK_FLAGS -o ?{firstBinPath(c)/toLower(c.name)} ?linkCmd" - $LINKER $LINK_FLAGS -o ?{firstBinPath(c)/toLower(c.name)} ?linkCmd || exit 1 + $LINKER $LINK_FLAGS -o ?{firstBinPath(c)/toLower(c.name)} ?linkCmd ;; # end for *) diff --git a/tools/niminst/install.tmpl b/tools/niminst/install.tmpl index 9dea6887bc..bfba024c76 100755 --- a/tools/niminst/install.tmpl +++ b/tools/niminst/install.tmpl @@ -3,6 +3,8 @@ # result = "#! /bin/sh\n# Generated by niminst\n" # var proj = c.name.toLower +set -e + if [ $# -eq 1 ] ; then # if c.cat[fcUnixBin].len > 0: if test -f ?{c.cat[fcUnixBin][0]} @@ -47,13 +49,13 @@ if [ $# -eq 1 ] ; then docdir="$1/?proj/doc" datadir="$1/?proj/data" - mkdir -p $1/?proj || exit 1 - mkdir -p $bindir || exit 1 - mkdir -p $configdir || exit 1 + mkdir -p $1/?proj + mkdir -p $bindir + mkdir -p $configdir ;; esac - mkdir -p $libdir || exit 1 - mkdir -p $docdir || exit 1 + mkdir -p $libdir + mkdir -p $docdir echo "copying files..." #var createdDirs = newStringTable() #for cat in fcConfig..fcLib: @@ -63,30 +65,34 @@ if [ $# -eq 1 ] ; then # mk = unixDirVars[cat] & "/" & mk # if not createdDirs.hasKey(mk): # createdDirs[mk] = "true" - mkdir -p ?mk || exit 1 + mkdir -p ?mk # end if # end if # end for #end for #for f in items(c.cat[fcUnixBin]): - cp ?f $bindir/?f.skipRoot || exit 1 + cp ?f $bindir/?f.skipRoot chmod 755 $bindir/?f.skipRoot #end for #for f in items(c.cat[fcConfig]): - cp ?f $configdir/?f.skipRoot || exit 1 + cp ?f $configdir/?f.skipRoot chmod 644 $configdir/?f.skipRoot #end for #for f in items(c.cat[fcData]): - cp ?f $datadir/?f.skipRoot || exit 1 - chmod 644 $datadir/?f.skipRoot + if [ -f ?f ]; then + cp ?f $datadir/?f.skipRoot + chmod 644 $datadir/?f.skipRoot + fi #end for -#for f in items(c.cat[fcDoc]): - cp ?f $docdir/?f.skipRoot || exit 1 - chmod 644 $docdir/?f.skipRoot +#for f in items(c.cat[fcDoc]): + if [ -f ?f ]; then + cp ?f $docdir/?f.skipRoot + chmod 644 $docdir/?f.skipRoot + fi #end for -#for f in items(c.cat[fcLib]): - cp ?f $libdir/?f.skipRoot || exit 1 +#for f in items(c.cat[fcLib]): + cp ?f $libdir/?f.skipRoot chmod 644 $libdir/?f.skipRoot #end for