]> git.donarmstrong.com Git - cran2deb.git/blobdiff - tags/gsoc_final/exec/build_some
gsoc_final
[cran2deb.git] / tags / gsoc_final / exec / build_some
diff --git a/tags/gsoc_final/exec/build_some b/tags/gsoc_final/exec/build_some
new file mode 100755 (executable)
index 0000000..679eed2
--- /dev/null
@@ -0,0 +1,36 @@
+#!/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 ]) {
+    cran2deb cran_pkgs $* >all_pkgs
+}
+for (pkg in `{cat all_pkgs}) {
+    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
+        }
+    }
+}