diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-10-19 10:09:28 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-10-19 10:10:47 +0200 |
commit | c6f8e9dd64feb1ad174201277cf2ad0784f7d001 (patch) | |
tree | 2046cef1ef26ec458c0831fd6ee6156921528350 /guix | |
parent | 1d19bc11620dd0421569712748262f5c411342f8 (diff) | |
download | gnu-guix-c6f8e9dd64feb1ad174201277cf2ad0784f7d001.tar gnu-guix-c6f8e9dd64feb1ad174201277cf2ad0784f7d001.tar.gz |
guix archive: Add '--extract'.
* guix/scripts/archive.scm (show-help, %options): Add --extract.
(guix-archive): Honor it.
* tests/guix-archive.sh: Test it.
* doc/guix.texi (Invoking guix archive): Document it.
Diffstat (limited to 'guix')
-rw-r--r-- | guix/scripts/archive.scm | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm index b120c555e3..1a941d1a73 100644 --- a/guix/scripts/archive.scm +++ b/guix/scripts/archive.scm @@ -20,6 +20,7 @@ #:use-module (guix config) #:use-module (guix utils) #:use-module ((guix build utils) #:select (mkdir-p)) + #:use-module ((guix serialization) #:select (restore-file)) #:use-module (guix store) #:use-module (guix packages) #:use-module (guix derivations) @@ -63,6 +64,8 @@ Export/import one or more packages from/to the store.\n")) --import import from the archive passed on stdin")) (display (_ " --missing print the files from stdin that are missing")) + (display (_ " + -x, --extract=DIR extract the archive on stdin to DIR")) (newline) (display (_ " --generate-key[=PARAMETERS] @@ -119,6 +122,9 @@ Export/import one or more packages from/to the store.\n")) (option '("missing") #f #f (lambda (opt name arg result) (alist-cons 'missing #t result))) + (option '("extract" #\x) #t #f + (lambda (opt name arg result) + (alist-cons 'extract arg result))) (option '("generate-key") #f #t (lambda (opt name arg result) (catch 'gcry-error @@ -328,6 +334,10 @@ the input port." (missing (remove (cut valid-path? store <>) files))) (format #t "~{~a~%~}" missing))) + ((assoc-ref opts 'extract) + => + (lambda (target) + (restore-file (current-input-port) target))) (else (leave (_ "either '--export' or '--import' \ |