From patchwork Thu Jun 27 18:41:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Jakob L. Kreuze" X-Patchwork-Id: 14408 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 572DE17178; Thu, 27 Jun 2019 19:44:14 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id 0644917176 for ; Thu, 27 Jun 2019 19:44:14 +0100 (BST) Received: from localhost ([::1]:53632 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hgZNV-0002xK-M1 for patchwork@mira.cbaines.net; Thu, 27 Jun 2019 14:44:13 -0400 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 X-Loop: help-debbugs@gnu.org Subject: [bug#36404] [PATCH 5/6] Add 'guix deploy'. Resent-From: zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 27 Jun 2019 18:44:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36404 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 36404@debbugs.gnu.org Received: via spool by 36404-submit@debbugs.gnu.org id=B36404.156166098815627 (code B ref 36404); Thu, 27 Jun 2019 18:44:02 +0000 Received: (at 36404) by debbugs.gnu.org; 27 Jun 2019 18:43:08 +0000 Received: from localhost ([127.0.0.1]:39669 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hgZMS-00043z-By for submit@debbugs.gnu.org; Thu, 27 Jun 2019 14:43:08 -0400 Received: from mx.sdf.org ([205.166.94.20]:51205) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hgZMR-00043r-1T for 36404@debbugs.gnu.org; Thu, 27 Jun 2019 14:43:07 -0400 Received: from Epsilon (pool-173-76-53-40.bstnma.fios.verizon.net [173.76.53.40]) (authenticated (0 bits)) by mx.sdf.org (8.15.2/8.14.5) with ESMTPSA id x5RIh5l6024493 (using TLSv1.2 with cipher AES256-GCM-SHA384 (256 bits) verified NO) for <36404@debbugs.gnu.org>; Thu, 27 Jun 2019 18:43:06 GMT 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> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches 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 © 2019 David Thompson +;;; Copyright © 2019 Jakob L. Kreuze ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,17 +19,35 @@ (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)) +;;; Commentary: +;;; +;;; This program provides a command-line interface to (gnu machine), allowing +;;; 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)) (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))) (define (load-source-file file) + "Load FILE as a user module." (let ((module (make-user-module '()))) (load* file module))) @@ -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 derivation - ;; for use in the deploy step. - (let ((osdrvs (map (lambda (machine) - (format #t "building ~a... " (machine-display-name machine)) - (let ((osdrv (run-with-store store (build-machine 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 machine)) + (run-with-store store (build-machine machine)) + (display "done\n")) + 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))))