Use new wrap() function.
authorRichard W.M. Jones <rjones@redhat.com>
Fri, 10 Jan 2020 13:38:04 +0000 (13:38 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Fri, 10 Jan 2020 13:38:04 +0000 (13:38 +0000)
Goalfile

index cafef1d..02c9611 100644 (file)
--- a/Goalfile
+++ b/Goalfile
@@ -47,15 +47,13 @@ let other-packages = [
     "why3", "z3",
     "flocq" # no OCaml code, but needs to be rebuilt after Coq
 ]
-pure function get-source-packages () = {
+pure function get-source-packages () returning strings = {
     cd %fedora-dir
-    echo '['
     for f in ocaml* %other-packages; do
-        [ -f $f/%branch/$f.spec ] && echo "*built-in-koji(\"$f\"),"
+        [ -f $f/%branch/$f.spec ] && echo "$f"
     done
-    echo ']'
 }
-let source-packages = get-source-packages ()
+let source-packages = wrap ("*built-in-koji", get-source-packages ())
 
 # Main goal: Rebuild all packages.
 goal all = : source-packages ;
@@ -107,7 +105,7 @@ tactic *built-in-koji (pkg) = {
 }
 
 goal rebuild (pkg) =
-*built-in-koji ("%pkg") : source-dependencies (pkg) {
+*built-in-koji ("%pkg") : wrap ("*built-in-koji", source-dependencies (pkg)) {
     cd %fedora-dir/%pkg/%branch
     fedpkg=%fedpkg
     koji=%koji
@@ -141,12 +139,11 @@ goal rebuild (pkg) =
 # Note this is not merely the BuildRequires, since those are
 # the binary packages.  Also this will only find packages
 # which are in the list of source-packages.
-pure function source-dependencies (pkg) = @{
+pure function source-dependencies (pkg) returning strings = @{
     specfile=%fedora-dir/%pkg/%branch/%pkg.spec
 
     echo Calculating dependencies of %pkg >&2
 
-    echo '['
     for r in $(rpmspec -q --buildrequires $specfile 2>/dev/null |
                awk '{print $1}'); do
         # Now we examine each *other* source package to see
@@ -157,9 +154,8 @@ pure function source-dependencies (pkg) = @{
                  awk '{print $1}' |
                  grep -sq "^$r\$"
              then
-                 echo "*built-in-koji(\"$p\"),"
+                 echo "$p"
             fi
         done
     done
-    echo ']'
 }