summaryrefslogtreecommitdiff
path: root/guix/scripts
AgeCommit message (Collapse)Author
2015-10-21import: elpa: Add updater.Ludovic Courtès
* guix/import/elpa.scm (latest-release, package-from-gnu.org?): New procedures. (%elpa-updater): New variable. * guix/scripts/refresh.scm (%updaters): Add %ELPA-UPDATER.
2015-10-21gnu-maintenance: Generalize, leading to (guix upstream).Ludovic Courtès
* guix/gnu-maintenance.scm (<gnu-release>): Remove. (coalesce-releases): Move to upstream.scm. Rename to 'coalesce-sources'; adjust callers. (releases, latest-release): Return <upstream-source> objects instead of <gnu-release> objects. (latest-release*, non-emacs-gnu-package?): New procedures. (gnu-release-archive-types): Remove. (%gnu-updater): New variable. (package-update-path, download-tarball, package-update, update-package-source): Move to... * guix/upstream.scm: ... here. New file. * Makefile.am (MODULES): Add it. * po/guix/POTFILES.in: Replace gnu-maintenance.scm with upstream.scm. * guix/scripts/refresh.scm (%updaters): New variable. (update-package): Adjust to new 'package-update' interface. (guix-refresh): Adjust to new 'package-update-path'. Remove 'false-if-exception' around it.
2015-10-20Add 'guix challenge'.Ludovic Courtès
* guix/scripts/challenge.scm, tests/challenge.scm: New files. * Makefile.am (MODULES): Add the former. (SCM_TESTS): Add the latter. * doc.am (SUBCOMMANDS): Add 'challenge'. * doc/guix.texi (Substitutes): Add xref to 'guix challenge'. (Invoking guix challenge): New node. * doc/contributing.texi (Submitting Patches): Add note about using 'guix challenge'. * po/guix/POTFILES.in: Add guix/scripts/challenge.scm.
2015-10-19substitute: Expose narinfo access.Ludovic Courtès
* guix/scripts/substitute.scm: Export <narinfo> accessors. (narinfo-hash->sha256): New procedure. (cache-narinfo!): Ignore EACCES exceptions.
2015-10-19guix archive: Add '--extract'.Ludovic Courtès
* 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.
2015-10-14guix system: Add 'dmd-graph' command.Ludovic Courtès
* guix/scripts/system.scm (dmd-service-node-label, dmd-service-node-type, export-dmd-graph): New procedures. (show-help): Add 'dmd-graph'. (guix-system)[parse-sub-command]: Likewise. Honor it. * doc/guix.texi (Invoking guix system): Document it. (dmd Services): Add an illustration and explanation. * doc/images/dmd-graph.dot: New file. * doc.am (DOT_FILES): Add it.
2015-10-14guix system: Add 'extension-graph' command.Ludovic Courtès
* guix/scripts/system.scm (service-node-label, service-node-type, export-extension-graph): New procedures. (guix-system)[parse-sub-command]: Add 'extension-graph'. Honor it. (show-help): Add 'extension-graph'. * doc/guix.texi (Invoking guix system): Document it. (Service Composition): Add cross-reference.
2015-10-14graph: 'export-graph' takes a #:reverse-edges? parameter.Ludovic Courtès
* guix/scripts/graph.scm (export-graph): Add #:reverse-edges? parameter and honor it.
2015-10-10guix system: Add '--derivation'.Ludovic Courtès
* guix/scripts/system.scm (perform-action): Add #:derivations-only? parameter and honor it. (show-help, %options): Add '--derivation'. (guix-system): Pass #:derivations-only? to 'perform-action'. * tests/guix-system.sh: Test it. * doc/guix.texi (Invoking guix system): Document it.
2015-10-09scripts: environment: Use system* instead of system.David Thompson
This allows for direct program invokation without needing a shell to act as a command interpreter. * guix/scripts/environment.scm (%default-shell): New variable. (show-help): Adjust description. Remove '--exec' reference. (%default-options): Use '%default-shell'. (%options): Adjust '--exec' to run command via the default shell. (parse-args): New procedure. (guix-environment): Use 'parse-args'. Use 'system*' instead of 'system'. * tests/guix-environment.sh: Add test for '--' command invokation. * doc/guix.texi ("Invoking guix environment"): Use new syntax. Remove '--exec' documentation.
2015-10-09lint: Export 'run-checkers'.Alex Kost
* guix/scripts/lint.scm (run-checkers): Export. Make 'checkers' argument optional.
2015-10-06publish: Fix file descriptor leak.Ludovic Courtès
A client closing the connection while reading from a /nar URL would leave an open file descriptor in the server. This patch fixes it. * guix/scripts/publish.scm (swallow-EPIPE): New macro. (http-write): Use it around 'write-file' call.
2015-09-28guix gc: Add '--list-failures' and '--clear-failures'.Ludovic Courtès
Suggested by Mark H Weaver <mhw@netris.org>. * guix/scripts/gc.scm (show-help, %options): Add --list-failures and --clear-failures. (guix-gc): Honor them. * doc/guix.texi (Invoking guix gc): Document them. (Invoking guix-daemon): Mention them.
2015-09-28lint: Fix 'check-texinfo-markup'.Mathieu Lirzin
Fixes a regression introduced in 5d8d8f3. * guix/scripts/lint.scm (check-description-style): When no exception is thrown in 'check-texinfo-markup', return the rendered description.
2015-09-26lint: Improve 'check-texinfo-markup'.Mathieu Lirzin
* guix/scripts/lint.scm (check-description-style): Set 'field' parameter when emitting a warning in 'check-texinfo-markup'. Catch any error that may occur in during the 'texi->plain-text' conversion. This is a followup to commit 2748ee3.
2015-09-25offload: Use gzip instead of xz for compression on the master.Ludovic Courtès
* guix/scripts/offload.scm (send-files): Use gzip --fast instead of xz.
2015-09-24lint: Accept '`' character.Mathieu Lirzin
* guix/scripts/lint.scm (properly-starts-sentence?): Match Texinfo highlighting commands as a sentence start.
2015-09-24lint: Check non-translated package descriptions.Mathieu Lirzin
* guix/ui.scm (texi->plain-text): Export. * guix/scripts/lint.scm (check-description-style): Use it instead of 'package-description-string'.
2015-09-22scripts: Add 'build-package'.Alex Kost
* guix/scripts/system.scm (maybe-build): Move to ... * guix/scripts.scm: ...here. (build-package): New procedure. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2015-09-18lint: Report lonely parentheses.Ludovic Courtès
* guix/scripts/lint.scm (%hanging-paren-rx): New variable. (report-lone-parentheses): New procedure. (%formatting-reporters): Use it. * tests/lint.scm ("formatting: lonely parentheses"): New test.
2015-09-18ui: Add 'show-derivation-outputs'.Alex Kost
* guix/scripts/build.scm (guix-build): Extract code from here and move to... * guix/ui.scm (show-derivation-outputs): ... here. New procedure.
2015-09-18Add (guix scripts).Alex Kost
* 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-16substitute: Improve readability of download progress report.Steve Sprang
* guix/build/download.scm (string-pad-middle, store-url-abbreviation, store-path-abbreviation): New procedures. (progress-proc): Add #:abbreviation parameter and use it. Generate a better indeterminate progress string. * guix/scripts/substitute.scm (assert-valid-narinfo): Add newlines to output. (process-substitution): Use byte-count->string and store-path-abbreviation. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2015-09-15lint: Add 'check-texinfo-markup' checker.Mathieu Lirzin
* guix/script/lint.scm (check-description-style): Check for invalid Texinfo markup. * tests/lint.scm: Test it.
2015-09-14guix: lint: Check for meaningful origin file names.Eric Bavier
* guix/scripts/lint.scm (check-source-file-name): New procedure. (%checkers): Add 'source-file-name' checker. * tests/lint.scm ("source-file-name", "source-file-name: v prefix") ("source-file-name: valid", "source-file-name: bad checkout") ("source-file-name: good checkout"): New tests. * doc/guix.texi (Invoking guix lint): Mention file name check.
2015-09-14guix: packages: Add origin-actual-file-name.Eric Bavier
* guix/scripts/graph.scm (uri->file-name, node-full-name): Move origin file name logic to... * guix/packages.scm (origin-actual-file-name): ...here. * tests/packages.scm ("origin-actual-file-name") ("origin-actual-file-name, file-name"): New tests.
2015-09-15guix system: Gracefully handle incomplete commands.Ludovic Courtès
Fixes <http://bugs.gnu.org/21451>. Reported by Steve Sprang <steve.sprang@gmail.com>. * guix/scripts/system.scm (guix-system)[option-arguments]: Error out when ACTION is #f.
2015-09-10guix build: '--log-file' can return URLs.Ludovic Courtès
* guix/scripts/build.scm (%default-log-urls): New variable. (log-url): New procedure. (guix-build): Use it. * doc/guix.texi (Invoking guix build): Document it.
2015-09-10pull: Update to the new cgit snapshot URL.Ludovic Courtès
* guix/scripts/pull.scm (%snapshot-url): Update to the new URL.
2015-09-06lint: Add 'license' checker.Ludovic Courtès
* guix/scripts/lint.scm (check-license): New procedure. (%checkers): Add 'license' checker. * tests/lint.scm ("license: invalid license"): New test.
2015-09-04publish: Gracefully handle the lack of a deriver.Ludovic Courtès
* guix/scripts/publish.scm (narinfo-string): Catch 'system-error' around 'load-derivation' call; return BASE-INFO upon ENOENT. This allows us to return the narinfo even if DERIVER is missing. Before that, the exception would be uncaught, leading to 500 Internal Error on the client side.
2015-09-02graph: Add '--expression'.Ludovic Courtès
* guix/scripts/graph.scm (%options, show-help): Add '--expression'. (guix-graph): Call 'read/eval-package-expression' for 'expression' pairs in OPTS. * tests/guix-graph.sh: Add tests. * doc/guix.texi (Invoking guix graph): Document it.
2015-08-31import: Add 'cran' importer.Ricardo Wurmus
* guix/import/cran.scm: New file. * guix/scripts/import.scm: Add "cran" to 'importers'. * guix/scripts/import/cran.scm: New file. * tests/cran.scm: New file. * Makefile.am (MODULES): Add 'guix/import/cran.scm' and 'guix/scripts/import/cran.scm'. (SCM_TESTS): Add 'tests/cran.scm'. * doc/guix.texi (Invoking guix import): Document it. * po/guix/POTFILES.in: Add 'guix/scripts/import/cran.scm'.
2015-08-30guix graph: Export node types and <node-type> accessors.Alex Kost
* guix/scripts/graph.scm (%node-types, node-type, node-type?, node-type-identifier, node-type-label, node-type-edges, node-type-convert, node-type-name, node-type-description): Export.
2015-08-30guix lint: Export checkers and <lint-checker> accessors.Alex Kost
* guix/scripts/lint.scm (%checkers, lint-checker, lint-checker?, lint-checker-name, lint-checker-description, lint-checker-check): Export.
2015-08-29refresh: Add missing newline in warning message.Ludovic Courtès
Reported by karhunkynsi on #guix. * guix/scripts/refresh.scm (update-package): Add missing newline in string literal passed to 'warning'.
2015-08-27import: Add Ruby gem importer.David Thompson
* gnu/scripts/import.scm (importers): Add "gem". * gnu/import/gem.scm: New file. * gnu/scripts/import/gem.scm: New file. * Makefile.am (MODULES): Add them. * guix.texi ("invoking guix import"): Document it.
2015-08-27Add 'guix graph'.Ludovic Courtès
* guix/scripts/graph.scm, tests/graph.scm, tests/guix-graph.sh, doc/images/coreutils-bag-graph.dot, doc/images/coreutils-graph.dot: New files. * Makefile.am (MODULES): Add guix/scripts/graph.scm. (SH_TESTS): Add tests/guix-graph.sh. (SCM_TESTS): Add tests/graph.scm. * doc.am (DOT_FILES, DOT_VECTOR_GRAPHICS): New variables. (EXTRA_DIST): Use them. (dist_infoimage_DATA): Use $(DOT_FILES). (pdf-local, info-local, ps-local): Likewise. * doc/guix.texi (Packages with Multiple Outputs): Add cross-reference to 'guix graph'. (Invoking guix gc): Likewise. (Invoking guix graph): New section.
2015-08-19scripts: package: Add --install-from-file option.David Thompson
* guix/scripts/package.scm (show-help): Add help text for --install-from-file option. (%options): Add --install-from-file option. * tests/guix-package.sh: Test it. * doc/guix.texi ("invoking guix package"): Document it. * doc/package-hello.scm: New file. * doc.am (EXTRA_DIST): Add it.
2015-08-19size: Get the item's size from the daemon rather than compute it.Ludovic Courtès
This removes all I/O, which obviously makes things faster. * guix/scripts/size.scm (file-size, store-item-exists?): Remove. (query-path-info*): New procedure. (file-size*): Rename to... (file-size): ... this; adjust caller. Use 'query-path-info*' instead of 'file-size'.
2015-08-19lint: Add 'formatting' checker.Ludovic Courtès
* guix/scripts/lint.scm (report-tabulations, report-trailing-white-space, report-long-line, report-formatting-issues, check-formatting): New procedures. (%formatting-reporters): New variable. (%checkers): Add 'formatting' checker. * tests/lint.scm ("formatting: tabulation", "formatting: trailing white space", "formatting: long line", "formatting: alright"): New tests. * doc/guix.texi (Invoking guix lint): Mention the 'formatting' checker.
2015-08-10import: elpa: Fix typo.Alex Kost
Reported by Eric Dvorsak <eric@dvorsak.fr> on #guix. * guix/scripts/import/elpa.scm (%default-options): Remove redundant quote which led to an error if --archive option was not specified.
2015-07-23Fix typos in translatable strings.Ludovic Courtès
Reported by Anders Jonsson <anders.jonsson@norsjovallen.se>. * gnu/packages/backup.scm, gnu/packages/databases.scm, gnu/packages/linux.scm, gnu/packages/perl.scm, gnu/packages/web.scm, guix/scripts/lint.scm, guix/scripts/publish.scm: Fix typos in translatable strings.
2015-07-22size: Add '--substitute-urls' option.Ludovic Courtès
* guix/scripts/size.scm (show-help, %options): Add --substitute-urls. (%default-options): Add 'substitute-urls'. (guix-size): Honor it. * doc/guix.texi (Invoking guix size): Document it.
2015-07-22import: hackage: Remove reference to unbound variable.Ludovic Courtès
* guix/scripts/import/hackage.scm (guix-import-hackage): Fix error message for imports from stdin, which referred to unbound variable 'package-name'.
2015-07-22size: Remove leftover 'pk'.Ludovic Courtès
* guix/scripts/size.scm (profile->page-map): Remove leftover 'pk'.
2015-07-20publish: Do not load archive content in memory.Ludovic Courtès
Previously, before replying to a /nar/* request, 'guix publish' would first build up the whole nar into memory (as a consequence of <http://bugs.gnu.org/21093>), which obviously doesn't scale. * guix/scripts/publish.scm (render-nar): Return STORE-PATH instead of a procedure that calls 'write-file'. (sans-content-length): New procedure. (http-write): For 'x-nix-archive', don't call '%http-write'. Instead, call 'write-file' right from here, using BODY as the file name.
2015-07-19publish: Serve /nar requests in a separate thread.Ludovic Courtès
* guix/scripts/publish.scm (%http-write): New variable. (http-write): New procedure. (concurrent-http-server): New variable. (run-publish-server): Use it.
2015-07-18publish: Write hashes in nix-base32 format.Ludovic Courtès
* guix/scripts/publish.scm (narinfo-string): Use 'bytevector->nix-base32-string', not 'bytevector->base32-string'.
2015-07-17system: Add 'kernel-arguments' field.Ludovic Courtès
* gnu/system.scm (<operating-system>)[kernel-arguments]: New field. (operating-system-grub.cfg): Honor it. (operating-system-parameters-file): Add 'kernel-arguments' to the parameters file. * guix/scripts/system.scm (previous-grub-entries)[system->grub-entry]: Read the 'kernel-arguments' field of the parameters file, when available. * gnu/system/vm.scm (system-qemu-image/shared-store-script): Use (operating-system-kernel-arguments os) in '-append'. * doc/guix.texi (operating-system Reference): Document it.