From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:50807) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hgZNL-0002sP-L3 for guix-patches@gnu.org; Thu, 27 Jun 2019 14:44:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hgZNK-0001U0-By for guix-patches@gnu.org; Thu, 27 Jun 2019 14:44:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:54361) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hgZNK-0001Tq-8E for guix-patches@gnu.org; Thu, 27 Jun 2019 14:44:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hgZNK-00045h-5a for guix-patches@gnu.org; Thu, 27 Jun 2019 14:44:02 -0400 Subject: [bug#36404] [PATCH 5/6] Add 'guix deploy'. Resent-Message-ID: From: zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) References: <87o92ianbj.fsf@sdf.lonestar.org> <87imsqan66.fsf@sdf.lonestar.org> <87ef3ean4i.fsf_-_@sdf.lonestar.org> <87a7e2an3h.fsf_-_@sdf.lonestar.org> <875zoqan2e.fsf_-_@sdf.lonestar.org> Date: Thu, 27 Jun 2019 14:41:29 -0400 In-Reply-To: <875zoqan2e.fsf_-_@sdf.lonestar.org> (Jakob L. Kreuze's message of "Thu, 27 Jun 2019 14:40:57 -0400") Message-ID: <871rzean1i.fsf_-_@sdf.lonestar.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 36404@debbugs.gnu.org 2019-06-26 Jakob L. Kreuze * guix/scripts/deploy.scm: Add on-line help and limit verbosity. --- guix/scripts/deploy.scm | 52 ++++++++++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 19 deletions(-) diff --git a/guix/scripts/deploy.scm b/guix/scripts/deploy.scm index 0be279642b..c52434f518 100644 --- a/guix/scripts/deploy.scm +++ b/guix/scripts/deploy.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2019 David Thompson +;;; Copyright =C2=A9 2019 Jakob L. Kreuze ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,17 +19,35 @@ =20 (define-module (guix scripts deploy) #:use-module (gnu machine) - #:use-module (guix ui) #:use-module (guix scripts) #:use-module (guix scripts build) #:use-module (guix store) + #:use-module (guix ui) #:use-module (ice-9 format) #:use-module (srfi srfi-1) #:use-module (srfi srfi-37) #:export (guix-deploy)) =20 +;;; Commentary: +;;; +;;; This program provides a command-line interface to (gnu machine), allow= ing +;;; users to perform remote deployments through specification files. +;;; +;;; Code: + + + (define (show-help) - (display (G_ "Usage: guix deploy WHATEVER\n"))) + (display (G_ "Usage: guix deploy [OPTION] FILE... +Perform the deployment specified by FILE.\n")) + (show-build-options-help) + (newline) + (display (G_ " + -h, --help display this help and exit")) + (display (G_ " + -V, --version display version information and exit")) + (newline) + (show-bug-report-information)) =20 (define %options (cons* (option '(#\h "help") #f #f @@ -42,13 +61,11 @@ (substitutes? . #t) (build-hook? . #t) (graft? . #t) - (print-build-trace? . #t) - (print-extended-build-trace? . #t) - (multiplexed-build-output? . #t) (debug . 0) (verbosity . 2))) =20 (define (load-source-file file) + "Load FILE as a user module." (let ((module (make-user-module '()))) (load* file module))) =20 @@ -58,19 +75,16 @@ (let* ((opts (parse-command-line args %options (list %default-options) #:argument-handler handle-argument)) (file (assq-ref opts 'file)) - (machines (load-source-file file))) + (machines (or (and file (load-source-file file)) '()))) (with-store store (set-build-options-from-command-line store opts) - ;; Build all the OSes and create a mapping from machine to OS deriva= tion - ;; for use in the deploy step. - (let ((osdrvs (map (lambda (machine) - (format #t "building ~a... " (machine-display-n= ame machine)) - (let ((osdrv (run-with-store store (build-machi= ne machine)))) - (display "done\n") - (cons machine osdrv))) - machines))) - (for-each (lambda (machine) - (format #t "deploying to ~a... " (machine-display-name= machine)) - (run-with-store store (deploy-machine machine)) - (display "done\n")) - machines))))) + (for-each (lambda (machine) + (format #t "building ~a... " (machine-display-name machi= ne)) + (run-with-store store (build-machine machine)) + (display "done\n")) + machines) + (for-each (lambda (machine) + (format #t "deploying to ~a... " (machine-display-name m= achine)) + (run-with-store store (deploy-machine machine)) + (display "done\n")) + machines)))) --=20 2.22.0