From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41520) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fxAOI-0000Hs-Cp for guix-patches@gnu.org; Tue, 04 Sep 2018 08:25:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fxAOF-0005mF-4e for guix-patches@gnu.org; Tue, 04 Sep 2018 08:25:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:40111) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fxAOF-0005m7-0T for guix-patches@gnu.org; Tue, 04 Sep 2018 08:25:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fxAOE-0003IA-Rc for guix-patches@gnu.org; Tue, 04 Sep 2018 08:25:02 -0400 Subject: [bug#32632] [PATCH 1/3] pull: Add '--profile'. References: <20180904120925.23653-1-ludo@gnu.org> In-Reply-To: <20180904120925.23653-1-ludo@gnu.org> Resent-Message-ID: From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Tue, 4 Sep 2018 14:23:43 +0200 Message-Id: <20180904122345.23979-1-ludo@gnu.org> 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: 32632@debbugs.gnu.org * guix/scripts/pull.scm (show-help, %options): Add '--profile'. (build-and-install): Change 'config-dir' argument to 'profile'. (guix-pull): Honor '--profile'. * doc/guix.texi (Invoking guix pull): Document it. --- doc/guix.texi | 4 ++++ guix/scripts/pull.scm | 19 ++++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index ad82c6793..c11505011 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2849,6 +2849,10 @@ is provided, the subset of generations that match @var{pattern}. The syntax of @var{pattern} is the same as with @code{guix package --list-generations} (@pxref{Invoking guix package}). +@item --profile=@var{profile} +@itemx -p @var{profile} +Use @var{profile} instead of @file{~/.config/guix/current}. + @item --bootstrap Use the bootstrap Guile to build the latest Guix. This option is only useful to Guix developers. diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 18c04f05d..ebc5dc9b1 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -79,6 +79,8 @@ Download and deploy the latest version of Guix.\n")) (display (G_ " -l, --list-generations[=PATTERN] list generations matching PATTERN")) + (display (G_ " + -p, --profile=PROFILE use PROFILE instead of ~/.config/guix/current")) (display (G_ " --bootstrap use the bootstrap Guile to build the new Guix")) (newline) @@ -113,6 +115,10 @@ Download and deploy the latest version of Guix.\n")) (lambda (opt name arg result) (alist-cons 'ref `(branch . ,(string-append "origin/" arg)) result))) + (option '(#\p "profile") #t #f + (lambda (opt name arg result) + (alist-cons 'profile (canonicalize-profile arg) + result))) (option '(#\n "dry-run") #f #f (lambda (opt name arg result) (alist-cons 'dry-run? #t (alist-cons 'graft? #f result)))) @@ -152,15 +158,12 @@ Download and deploy the latest version of Guix.\n")) #:heading (G_ "New in this revision:\n")))) (_ #t))) -(define* (build-and-install instances config-dir +(define* (build-and-install instances profile #:key verbose?) - "Build the tool from SOURCE, and install it in CONFIG-DIR." + "Build the tool from SOURCE, and install it in PROFILE." (define update-profile (store-lift build-and-use-profile)) - (define profile - (string-append config-dir "/current")) - (mlet %store-monad ((manifest (channel-instances->manifest instances))) (mbegin %store-monad (update-profile profile manifest) @@ -414,7 +417,9 @@ Use '~/.config/guix/channels.scm' instead.")) (let* ((opts (parse-command-line args %options (list %default-options))) (cache (string-append (cache-directory) "/pull")) - (channels (channel-list opts))) + (channels (channel-list opts)) + (profile (or (assoc-ref opts 'profile) + (string-append (config-directory) "/current")))) (cond ((assoc-ref opts 'query) (process-query opts)) @@ -456,7 +461,7 @@ Use '~/.config/guix/channels.scm' instead.")) %bootstrap-guile (canonical-package guile-2.2))))) (run-with-store store - (build-and-install instances (config-directory) + (build-and-install instances profile #:verbose? (assoc-ref opts 'verbose?))))))))))))) -- 2.18.0