devops/devops: Add tag-options. Make only public (devops) bindings.
authorMatt Birkholz <matt@birchwood-abbey.net>
Sat, 17 Mar 2018 19:59:20 +0000 (12:59 -0700)
committerMatt Birkholz <matt@birchwood-abbey.net>
Sat, 17 Mar 2018 19:59:20 +0000 (12:59 -0700)
src/devops/build.texi
src/devops/devops.pkg
src/devops/devops.scm

index c2b2006407bee5a3466eea99ce5957b4ea0223c2..291c4cbc0cfb0533279af208fced61a2eae4fd12 100644 (file)
@@ -107,11 +107,11 @@ strings.
 
 @deffn Procedure make-configuration . options
 @var{Options} should be a list of strings to be passed as arguments to
-the @code{./configure} scripts of the core and plugins.
+the @code{./configure} scripts of the core and plugins.  They are
+not shell escaped.  A space is inserted between them.
 @end deffn
 
 An example @file{devops-config.scm} file:
-
 @smallexample
 ;; Shared configuration.
 (load (merge-pathnames "devops/config.scm"
@@ -202,6 +202,12 @@ Warn of unclean files, lint, or other possible trouble, but tag
 (or core) but no git tags.
 @end deffn
 
+@deffn Procedure tag-options . options
+@var{Options} should be a list of strings to be passed as arguments in
+the @code{git tag} shell command line used to tag a release.  They are
+not shell escaped.  A space is inserted between them.
+@end deffn
+
 @node Build Process
 @section Build Process
 
index fc705b0c5b4475530bde748e5fcd69f4bb2f508d..825f9289943ba6f0455443e1101760a3f344e255 100644 (file)
@@ -31,16 +31,26 @@ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
   (files "build"))
 
 (define-package (devops)
+  (parent ()))
+
+(define-package (devops main)
   (parent (devops build))
   (files "devops")
   (export ()
          devops:status
          devops:release
          devops:build
-         devops:make))
+         devops:make)
+  (export (devops)
+         host
+         main
+         plugin
+         project-name
+         tag-options
+         make-configuration))
 
 (define-package (devops lint)
-  (parent (devops))
+  (parent (devops main))
   (files "lint")
   (export (devops)
          plugin-deffn-lint)
index 6d9f3e2ccabea8ba6dc50d793294d7057a2a92c5..07d92f34d244a3ec294927466c300f0adbeb9f9e 100644 (file)
@@ -24,7 +24,7 @@ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ;;; See devops.texi for complete details.
 
-(define (devops:main)
+(define (main)
   (let* ((cmdl (command-line))
         (arg1 (and (pair? cmdl) (car cmdl))))
     (cond ((equal? arg1 "status") (apply devops:status (cdr cmdl)))
@@ -371,7 +371,13 @@ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 \f
 ;;;; Release
 
-(define git-tag-create-options "")
+(define tag-create-options "")
+
+(define (tag-options . options)
+  (guarantee-list-of string? options 'tag-options)
+  (if (not (null? options))
+      (set! tag-create-options ((string-joiner* 'infix " ") options)))
+  tag-create-options)
 
 (define (devops:release #!optional plugin)
   (load "devops/config.scm")
@@ -408,7 +414,7 @@ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
           (runl "git archive --prefix="project"/ HEAD"
                 " | ( cd devops/"pkgvers" && tar xf - )")
           (begin
-            (runl "git tag "git-tag-create-options" -m \"\" "pkgvers)
+            (runl "git tag "tag-create-options" -m \"\" "pkgvers)
             (runl "git archive --prefix="project"/ "pkgvers
                   " | ( cd devops/"pkgvers" && tar xf - )")))
        (runl "cd devops/"pkgvers" && "project"/dist/make-src-files standard")
@@ -446,7 +452,7 @@ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
           (runl "git archive --prefix="pkgvers"/ HEAD -- "dir
                 " | ( cd devops && tar xf - )")
           (begin
-            (runl "git tag "git-tag-create-options" -m \"\" "pkgvers)
+            (runl "git tag "tag-create-options" -m \"\" "pkgvers)
             (runl "git archive --prefix="pkgvers"/ "pkgvers" -- "dir
                   " | ( cd devops && tar xf - )")))
        (runl "cd devops/"pkgvers"/"dir" && ./autogen.sh")
@@ -872,12 +878,9 @@ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
 (define make-config "")
 (define (make-configuration . args)
+  (guarantee-list-of string? args 'make-configuration)
   (if (not (null? args))
-      (begin
-       (if (not (list-of-type? args string?))
-           (error:wrong-type-argument args "list of strings"
-                                      'make-configuration))
-       (set! make-config (decorated-string-append "" " " "" args))))
+      (set! make-config ((string-joiner* 'infix " ") args)))
   make-config)
 
 (define (lndir dest)