~ruther/guix-local

ref: cea25b08bfd22bda940e5ac7ea29d4fa035d8303 guix-local/guix/scripts d---------
e261e276 — Ludovic Courtès 8 years ago
guix system: 'init' displays a progress bar while copying.

Until now it would print the name of each store item being copied, which
was verbose and unhelpful.

* guix/scripts/system.scm (copy-closure): Use 'progress-reporter/bar'
and 'call-with-progress-reporter'.
(guix-system): Parameterize 'current-terminal-columns'.
e4ecd51e — Ludovic Courtès 8 years ago
guix system: Simplify closure copy.

* guix/scripts/system.scm (copy-item): Add 'references' argument and
remove 'references*' call.  Turn into a non-monadic procedure.
(copy-closure): Remove initial call to 'references*'.  Only pass ITEM to
'topologically-sorted*' since that's equivalent.  Compute the list of
references corresponding to TO-COPY and pass it to 'copy-item'.
1fafa2f5 — Ludovic Courtès 8 years ago
weather: Use (guix progress) for progress report.

* guix/progress.scm (start-progress-reporter!, stop-progress-reporter!)
(progress-reporter-report!): New procedures.
* guix/scripts/weather.scm (call-with-progress-reporter): New procedure.
(package-outputs)[update-progress!]: Remove.
Use 'call-with-progress-reporter' instead.
(guix-weather): Parameterize 'current-terminal-columns'.
0a154c15 — Ludovic Courtès 8 years ago
lint: Adjust file-name length test for out-of-tree file names.

* guix/scripts/lint.scm (check-patch-file-names): Adjust
file-name-length calculation.
eef01cfe — Ludovic Courtès 8 years ago
lint: 'patch-file-names' checks for file name length.

Reported at <https://bugs.gnu.org/27943>
by Danny Milosavljevic <dannym@scratchpost.org>.

* guix/scripts/lint.scm (%distro-directory): New variable.
(check-patch-file-names): Add check for the file name length.
* tests/lint.scm ("patches: file name too long"): New test.
cd295fbe — Ludovic Courtès 8 years ago
Revert "Add (guix self) and use it when pulling."

This reverts commit 5f93d97005897c2d859f0be1bdff34c88467ec61.

'guix pull' would fail because (guix self) needs 'scheme-files'
from (guix discovery), which was not exported until now.
5f93d970 — Ludovic Courtès 8 years ago
Add (guix self) and use it when pulling.

This mitigates <https://bugs.gnu.org/27284>.

* guix/self.scm: New file.
* Makefile.am (MODULES): Add it.
* build-aux/build-self.scm (libgcrypt, zlib, gzip, bzip2, xz)
(false-if-wrong-guile, package-for-current-guile, guile-json)
(guile-ssh, guile-git, guile-bytestructures): Remove.
(build): Rewrite to simply delegate to 'compiled-guix'.
* gnu/packages.scm (%distro-root-directory): Rewrite to try different
directories.
* guix/discovery.scm (guix): Export 'scheme-files'.
* guix/scripts/pull.scm (build-and-install): Split into...
(install-latest): ... this.  New procedure.  And...
(build-and-install): ... this, which now takes a monadic value argument.
(indirect-root-added): Remove.
(guix-pull): Call 'add-indirect-root'.  Call 'build-from-source' and
pass the result to 'build-and-install'.
a6591381 — Ludovic Courtès 8 years ago
pull: Trim import list.

* guix/scripts/pull.scm: Remove useless imports.
8e57e416 — Ludovic Courtès 8 years ago
refresh: Account for hidden packages.

Suggested by Marius Bakke <mbakke@fastmail.com>
in <https://bugs.gnu.org/29177>.

* guix/scripts/refresh.scm (all-packages): Pass #:select? to
'fold-packages'.
34b1f339 — Ludovic Courtès 8 years ago
graph: Remove mention of Graphviz from the summary line.

* guix/scripts/graph.scm (show-help): Remove mention of Graphviz from
the summary line.
6d6d1932 — Ludovic Courtès 8 years ago
lint: 'refresh' gracefully handles lack of networking access.

* guix/scripts/lint.scm (check-for-updates): Wrap
'package-latest-release*' call in 'with-networking-fail-safe'.
4b879e0a — Ludovic Courtès 8 years ago
lint: Extract network-related exception handling.

* guix/scripts/lint.scm (call-with-networking-fail-safe): New procedure.
(with-networking-fail-safe): New macro.
(current-vulnerabilities*): Rewrite in terms of 'with-networking-fail-safe'.
a1ff7e1d — Ludovic Courtès 8 years ago
scripts: Factorize option parsing sans 'GUIX_BUILD_OPTIONS'.

* guix/scripts.scm (parse-command-line): Add #:build-options? parameter
and honor it.
* guix/scripts/challenge.scm (guix-challenge): Use 'parse-command-line'
with #:build-options? #f instead of 'args-fold*'.
* guix/scripts/gc.scm (guix-gc): Likewise.
* guix/scripts/graph.scm (guix-graph): Likewise.
* guix/scripts/hash.scm (guix-hash): Likewise.
* guix/scripts/lint.scm (guix-lint): Likewise.
* guix/scripts/refresh.scm (guix-refresh): Likewise.
* guix/scripts/size.scm (guix-size): Likewise.
* guix/scripts/weather.scm (guix-weather): Likewise.
efff3dd4 — Ludovic Courtès 8 years ago
scripts: Use 'args-fold*' for command that do not honor build flags.

Fixes <https://bugs.gnu.org/28984>.
Reported by Eric Bavier.

* guix/scripts/challenge.scm (guix-challenge): Use 'args-fold*' instead
of 'parse-command-line'.
* guix/scripts/size.scm (guix-size): Likewise.
* guix/scripts/weather.scm (guix-weather): Likewise.
bf7dfb1f — Ludovic Courtès 8 years ago
challenge: Display an overall summary.

* guix/scripts/challenge.scm (summarize-report-list): New procedure.
(guix-challenge): Use it.
* doc/guix.texi (Invoking guix challenge): Adjust command output in
example.
d213cc8c — Ludovic Courtès 8 years ago
substitute: Don't send more than 1000 requests in a row.

Fixes <https://bugs.gnu.org/28731>.
Reported by Jan Nieuwenhuizen <janneke@gnu.org>.

* guix/scripts/substitute.scm (at-most): New procedure.
(http-multiple-get): Use it to send at most 1000 requests at once.
44c6a87f — Ludovic Courtès 8 years ago
guix package: '--list-available' does not show superseded packages.

* guix/scripts/package.scm (process-query) <'list-available>: Filter out
P if it matches 'package-superseded'.
8c348825 — Ludovic Courtès 8 years ago
Add (guix progress).

Among other things, this removes (guix utils), (guix ui), (guix config),
etc. from the closure of (guix build download), as was the case since
798648515b77507c242752457b4dc17c155bad6e.

* guix/utils.scm (<progress-reporter>, call-with-progress-reporter):
Move to...
* guix/progress.scm: ... here.  New file.
* Makefile.am (MODULES): Add it.
* guix/build/download.scm (current-terminal-columns)
(nearest-exact-integer, duration->seconds, seconds->string)
(byte-count->string, progress-bar, string-pad-middle)
(rate-limited, progress-reporter/file, dump-port*)
(time-monotonic): Move to progress.scm.
* guix/scripts/download.scm: Adjust accordingly.
* guix/scripts/substitute.scm: Likewise.
5efa0e4d — 宋文武 8 years ago
guix: substitute: Report the last progress in the child process.

Fixes <https://bugs.gnu.org/28756>.

* guix/utils.scm (filtered-port): Close the 'input' port for the current
process, and close it upon exit in the child process.
* guix/scripts/substitute.scm (progress-substitution): Display "\n\n" after
the reporter has finished.
61f28fe7 — Ludovic Courtès 8 years ago
lint: 'home-page' checker reports permanent redirects.

* guix/scripts/lint.scm (probe-uri): Add special case for HTTP 301.
(validate-uri): Likewise.
* tests/lint.scm ("home-page: 301, invalid")
("home-page: 301 -> 200", "home-page: 301 -> 404")
("source: 301 -> 200", "source: 301 -> 404"): New tests.
Next