]> git.donarmstrong.com Git - cran2deb.git/blobdiff - branch/multisys/exec/build_some
multisys: support for multiple os-arch configurations (preliminary)
[cran2deb.git] / branch / multisys / exec / build_some
diff --git a/branch/multisys/exec/build_some b/branch/multisys/exec/build_some
new file mode 100755 (executable)
index 0000000..f02af9d
--- /dev/null
@@ -0,0 +1,37 @@
+#!/usr/bin/rc
+## DOC: cran2deb build_some [taskview1 taskview2 ...]
+## DOC:     build some packages, logging warnings into ./warn/$package
+## DOC:     and failures into ./fail/$package. with no arguments a random
+## DOC:     sample of packages is built.  the file ./all_pkgs overrides this
+## DOC:     behaviour and is expected to be a list of packages to build.
+## DOC:
+
+mkdir -p warn fail
+shift
+if [ ! -e all_pkgs ]; then
+    cran2deb cran_pkgs $* >all_pkgs
+fi
+
+for pkg in $(cat all_pkgs); do
+    if (~ $pkg *..* */*) {
+        echo bad name $pkg >>fail/ERROR
+    } else if ([ -e warn/$pkg ]) {
+        echo skipping $pkg...
+    } else if ([ -e fail/$pkg ]) {
+        echo skipping failed $pkg...
+    } else {
+        echo -n .. package $pkg
+        fail=0
+        cran2deb build $pkg >fail/$pkg >[2=1] || fail=1
+        if (~ $fail 0) {
+            echo success
+            grep '^[WE]:' fail/$pkg >warn/$pkg
+#            if (~ `{stat -c '%s' warn/$pkg} 0) {
+#                rm -f warn/$pkg
+#            }
+            rm -f fail/$pkg
+        } else {
+            echo FAILED
+        }
+    }
+done