Alex Kost
88981dd3e2
Add (guix scripts).
...
* guix/ui.scm: Add missing copyright lines.
(args-fold*, environment-build-options, %default-argument-handler,
parse-command-line): Move to ...
* guix/scripts.scm: ...here. New file.
* guix/scripts/archive.scm: Use it.
* guix/scripts/build.scm: Likewise.
* guix/scripts/download.scm: Likewise.
* guix/scripts/edit.scm: Likewise.
* guix/scripts/environment.scm: Likewise.
* guix/scripts/gc.scm: Likewise.
* guix/scripts/graph.scm: Likewise.
* guix/scripts/hash.scm: Likewise.
* guix/scripts/import/cpan.scm: Likewise.
* guix/scripts/import/cran.scm: Likewise.
* guix/scripts/import/elpa.scm: Likewise.
* guix/scripts/import/gem.scm: Likewise.
* guix/scripts/import/gnu.scm: Likewise.
* guix/scripts/import/hackage.scm: Likewise.
* guix/scripts/import/nix.scm: Likewise.
* guix/scripts/import/pypi.scm: Likewise.
* guix/scripts/lint.scm: Likewise.
* guix/scripts/package.scm: Likewise.
* guix/scripts/publish.scm: Likewise.
* guix/scripts/pull.scm: Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/scripts/size.scm: Likewise.
* guix/scripts/system.scm: Likewise.
* tests/ui.scm (with-environment-variable, "parse-command-line",
"parse-command-line and --no options"): Move to ...
* tests/scripts.scm: ...here. New file.
* Makefile.am (MODULES): Add guix/scripts.scm.
(SCM_TESTS): Add tests/scripts.scm.
* po/guix/POTFILES.in: Add guix/scripts.scm.
2015-09-18 21:42:06 +03:00
Ludovic Courtès
84189ebc66
Move 'specification->package+output' to (gnu packages).
...
* guix/scripts/package.scm (specification->package+output): Move to...
* gnu/packages.scm (specification->package+output): ... here
* guix/scripts/archive.scm (guix): Adjust accordingly.
2015-06-18 00:25:48 +02:00
Ludovic Courtès
b3f213893b
ui: Factorize command-line + env. var. option parsing.
...
* guix/ui.scm (%default-argument-handler, parse-command-line): New
procedures.
(environment-build-options): Make private.
* guix/scripts/archive.scm (guix-archive)[parse-options,
parse-options-from]: Remove. Use 'parse-command-line' instead.
* guix/scripts/build.scm (guix-build): Likewise.
* guix/scripts/environment.scm (guix-environment): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/system.scm (guix-system): Likewise.
* tests/ui.scm (with-environment-variable): New macro.
("parse-command-line"): New test.
2015-02-26 00:04:36 +01:00
Ludovic Courtès
5660708895
guix archive: Add -r/--recursive.
...
* guix/scripts/archive.scm (show-help, %options): Add -r/--recursive.
(export-from-store): Pass #:recursive? to 'export-paths'.
* doc/guix.texi (Invoking guix archive): Add -r in Emacs example. Add
example with ~/.guix-profile. Document -r/--recursive.
2015-01-17 17:05:54 +01:00
Ludovic Courtès
9decb18c0b
guix archive: Remove unused -r/--root option.
...
* guix/scripts/archive.scm (%options): Remove -r/--root.
2015-01-17 16:52:49 +01:00
Ludovic Courtès
e87f0591f3
monads: Move '%store-monad' and related procedures where they belong.
...
This turns (guix monads) into a generic module for monads, and moves the
store monad and related monadic procedures in their corresponding
module.
* guix/monads.scm (store-return, store-bind, %store-monad, store-lift,
text-file, interned-file, package-file, package->derivation,
package->cross-derivation, origin->derivation, imported-modules,
compiled, modules, built-derivations, run-with-store): Move to...
* guix/store.scm (store-return, store-bind, %store-monad, store-lift,
text-file, interned-file): ... here.
(%guile-for-build): New variable.
(run-with-store): Moved from monads.scm. Remove default value for
#:guile-for-build.
* guix/packages.scm (default-guile): Export.
(set-guile-for-build): New procedure.
(package-file, package->derivation, package->cross-derivation,
origin->derivation): Moved from monads.scm.
* guix/derivations.scm (%guile-for-build): Remove.
(imported-modules): Rename to...
(%imported-modules): ... this.
(compiled-modules): Rename to...
(%compiled-modules): ... this.
(built-derivations, imported-modules, compiled-modules): New
procedures.
* gnu/services/avahi.scm, gnu/services/base.scm, gnu/services/dbus.scm,
gnu/services/dmd.scm, gnu/services/networking.scm,
gnu/services/ssh.scm, gnu/services/xorg.scm, gnu/system/install.scm,
gnu/system/linux-initrd.scm, gnu/system/shadow.scm, guix/download.scm,
guix/gexp.scm, guix/git-download.scm, guix/profiles.scm,
guix/svn-download.scm, tests/monads.scm: Adjust imports accordingly.
* guix/monad-repl.scm (default-guile-derivation): New procedure.
(store-monad-language, run-in-store): Use it.
* build-aux/hydra/gnu-system.scm (qemu-jobs): Add explicit
'set-guile-for-build' call.
* guix/scripts/archive.scm (derivation-from-expression): Likewise.
* guix/scripts/build.scm (options/resolve-packages): Likewise.
* guix/scripts/environment.scm (guix-environment): Likewise.
* guix/scripts/system.scm (guix-system): Likewise.
* doc/guix.texi (The Store Monad): Adjust module names accordingly.
2015-01-14 13:34:52 +01:00
nebuli
847391fe62
guix: scripts: Parse $GUIX_BUILD_OPTIONS separately.
...
Appending to "raw" args broke optional parameters in 'guix package -I'
and 'guix package -A', and possibly other places. Therefore, switch to
parsing each set of options on its own and append resulting alists
together afterwards.
* guix/scripts/archive.scm (parse-options-from): Rename from
(parse-options) and add explicit argument. New form of (parse-options)
using its old algorithm via -from function.
* guix/scripts/build.scm: Ditto.
* guix/scripts/environment.scm: Ditto.
* guix/scripts/package.scm: Ditto.
* guix/scripts/system.scm: Ditto.
* tests/guix-package.sh: Add test.
* doc/guix.texi (Invoking guix build): Make it clear that the options
are parsed independently.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2014-12-06 16:03:49 +01:00
nebuli
16eb115ef4
guix: scripts: Add GUIX_BUILD_OPTIONS environment handling.
...
* doc/guix.texi (Invoking guix build): Mention 'GUIX_BUILD_OPTIONS'.
* guix/scripts/archive.scm: (append args (environment-build-options)).
* guix/scripts/build.scm: Ditto.
* guix/scripts/environment.scm: Ditto.
* guix/scripts/package.scm: Ditto.
* guix/scripts/system.scm: Ditto.
* guix/ui.scm (environment-build-options): New function.
* guix/utils.scm (arguments-from-environment-variable): New function.
* tests/guix-build.sh: Add tests.
* test-env.in: Unset GUIX_BUILD_OPTIONS.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2014-11-30 18:54:07 +01:00
Ludovic Courtès
6ef3644e34
pk-crypto: Add pretty-printer to 'gcry-error' exceptions.
...
* guix/pk-crypto.scm (string->canonical-sexp, sign, generate-key): Pass
the procedure name as the first argument to 'throw'.
(gcrypt-error-printer): New procedure.
<top level>: Add call to 'set-exception-printer!'.
* guix/nar.scm (restore-one-item): Add 'proc' parameter to 'catch'
handler for 'gcry-error.
* guix/scripts/archive.scm (%options, generate-key-pair, authorize-key):
Likewise.
* guix/scripts/substitute-binary.scm (narinfo-signature->canonical-sexp):
Likewise.
2014-04-22 11:41:52 +02:00
Ludovic Courtès
ded1012f3c
pki: Introduce 'write-acl', and fix wrong conversion in 'ensure-acl'.
...
* guix/pki.scm (write-acl): New procedure.
(ensure-acl): Use it. Fixes a regression introduced in 39831f1
,
whereby 'ensure-acl' would yield a wrong-type-arg error.
* guix/scripts/archive.scm (authorize-key): Use 'write-acl'.
2014-04-04 00:23:17 +02:00
Ludovic Courtès
39831f1663
pki: Keep ACL in native sexp format to speed up 'authorized-key?'.
...
* guix/pki.scm (acl-entry-sexp, acl-sexp): Remove.
(public-keys->acl, current-acl): Return a native sexp.
(acl->public-keys, authorized-key?): Expect ACL to be a native sexp.
* guix/scripts/archive.scm (authorize-key): Convert ACL to
canonical-sexp when writing it.
2014-04-01 23:47:51 +02:00
Ludovic Courtès
de28fefd77
guix archive: Make sure $sysconfdir/guix exists in '--authorize'.
...
* guix/scripts/archive.scm (authorize-key): Add 'mkdir-p' call.
Reported by Alex Sassmannshausen <alex.sassmannshausen@gmail.com>.
2014-03-31 21:59:14 +02:00
Ludovic Courtès
1fda6840a8
pk-crypto: Don't use Ed25519 when libgcrypt is older than 1.6.0.
...
* guix/pk-crypto.scm (gcrypt-version): New procedure.
* guix/scripts/archive.scm (%key-generation-parameters): New variable.
(%options) <generate-key>: Use it.
* tests/pk-crypto.scm ("sign + verify, Ed25519"): Skip if using gcrypt < 1.6.0.
2014-03-20 23:06:47 +01:00
Ludovic Courtès
1cbfce1669
guix archive: Generate curve Ed25519 keys by default.
...
* guix/scripts/archive.scm (%options) <generate-key>: Default to curve
Ed25519. Suggested by Christian Grothoff <grothoff@in.tum.de>.
2014-03-17 23:49:35 +01:00
Ludovic Courtès
d0a850698a
guix archive: Improve '--generate-key' error reporting.
...
* guix/scripts/archive.scm (%options) <generate-key>: Report the error
source and string when 'string->canonical-sexp' fails.
2014-03-17 23:47:18 +01:00
Ludovic Courtès
257b93412a
guix build: Support '--with-source' along with '-e'.
...
* guix/scripts/build.scm (derivation-from-expression): Remove.
(options->derivations): Handle pairs of the form
"('argument . (? derivation?))".
(options/resolve-packages): Add 'store' parameter; update caller. Add
'system' variable. Add case for 'expression pairs.
* guix/scripts/archive.scm (derivation-from-expression): New procedure.
2014-03-13 19:21:49 +01:00
Ludovic Courtès
36b56f081b
guix archive: Change '--help' to show '--authorize'.
...
* guix/scripts/archive.scm (show-help): Add '--authorize'.
2014-02-28 22:31:16 +01:00
Ludovic Courtès
e7fc17b592
guix build: Factorize common options.
...
* guix/scripts/build.scm (show-build-options-help,
set-build-options-from-command-line): New procedures.
(show-help): Remove description of --dry-run,
--fallback, --no-substitutes, --max-silent-time, and --cores. Call
'show-build-options-help'.
(%standard-build-options): New variable.
(%options): Remove --dry-run, --fallback, --no-substitutes,
--verbosity, --max-silent-time, and --cores. Add
%STANDARD-BUILD-OPTIONS.
(guix-build): Use 'set-build-options-from-command-line' instead of
'set-build-options'.
* guix/scripts/archive.scm (show-help): Remove description of --dry-run,
--fallback, --no-substitutes, --max-silent-time, and --cores. Call
'show-build-options-help'.
(%options): Remove --dry-run, --fallback, --no-substitutes,
--verbosity, --max-silent-time, and --cores. Add
%STANDARD-BUILD-OPTIONS.
(export-from-store): Call 'set-build-options-from-command-line'
instead of 'set-build-options.
2014-02-18 00:13:24 +01:00
Ludovic Courtès
87236aed77
archive: Add '--missing'.
...
* guix/scripts/archive.scm (show-help, %options): Add '--missing'.
(guix-archive)[lines]: New procedure.
Use it to honor '--missing'.
* tests/guix-archive.sh: Add tests.
* doc/guix.texi (Invoking guix archive): Document '--missing'.
2014-01-06 22:25:29 +01:00
Ludovic Courtès
590e4154b6
archive: Make sure $sysconfdir/guix exists.
...
* guix/pki.scm (ensure-acl): Make sure the directory of %ACL-FILE
exists.
* guix/scripts/archive.scm (generate-key-pair): Likewise for
%PUBLIC-KEY-FILE.
2014-01-05 23:40:06 +01:00
Ludovic Courtès
f82cc5fdbe
archive: Add '--authorize'.
...
* guix/scripts/archive.scm (authorize-key): New procedure.
(guix-archive): Call it when OPTS contains 'authorize-key'.
* tests/guix-archive.sh: Add test with invalid public key.
* guix/pki.scm: Export '%acl-file'.
* doc/guix.texi (Invoking guix archive): Make it clear that '--import'
works only with authorized keys. Document '--authorize'.
2013-12-30 23:18:52 +01:00
Ludovic Courtès
554f26ece3
archive: Add '--generate-key'.
...
* guix/pk-crypto.scm (error-source, error-string): New procedures.
* guix/pki.scm (%private-key-file): New variable.
* guix/scripts/archive.scm (show-help): Document '--generate-key'.
(%options): Add "generate-key".
(generate-key-pair): New procedure.
(guix-archive): Call 'generate-key' when OPTS contains a
'generate-key' pair.
* doc/guix.texi (Setting Up the Daemon): Suggest generating a key pair.
(Invoking guix archive): Document '--generate-key'.
2013-12-30 22:57:37 +01:00
Ludovic Courtès
760c60d684
Add 'guix archive'.
...
* guix/scripts/archive.scm, tests/guix-archive.sh: New files.
* Makefile.am (MODULES): Add 'archive.scm'.
(SH_TESTS): Add 'guix-archive.sh'.
* doc/guix.texi (Invoking guix archive): New section.
* guix/scripts/build.scm: Export 'derivation-from-expression'.
* guix/scripts/package.scm: Export 'specification->package+output'.
2013-12-22 01:08:21 +01:00