guix-devel/guix/scripts
Ludovic Courtès ed7b44370f
offload: Use (guix inferior) instead of (ssh dist node).
Using inferiors and thus 'guix repl' simplifies setup on build
machines (no need to worry about GUILE_LOAD_PATH etc.)

Furthermore, the 'guix repl -t machine' protocol running in a remote
pipe addresses several issues with the current implementation of nodes
and RREPLs in Guile-SSH: fewer round trips, doesn't leave a 'guile
--listen' process behind it, stateless (since a new process is started
each time), more efficient (the SSH channel can be reused), more
reliable (no 'pgrep', 'pkill', and shellology; see
<https://github.com/artyom-poptsov/guile-ssh/issues/11> as an example.)

* guix/ssh.scm (inferior-remote-eval): New procedure.
(send-files): Use it instead of 'make-node' and 'node-eval'.
* guix/scripts/offload.scm (node-guile-version): New procedure.
(node-free-disk-space, transfer-and-offload, node-load)
(choose-build-machine, assert-node-has-guix): Use 'remote-inferior'
instead of 'make-node' and 'inferior-eval' instead of 'node-eval'.
(assert-node-can-import, assert-node-can-export): Likewise, and add
'session' parameter.
(check-machine-availability): Likewise, and add calls to
'close-inferior' and 'disconnect!'.
(check-machine-status): Likewise.
* doc/guix.texi (Daemon Offload Setup): Remove bit related to 'guile' in
$PATH and $GUILE_LOAD_PATH; mention 'guix' alone.
2018-12-24 16:06:32 +01:00
..
container ui: Rename '_' to 'G_'. 2017-05-03 16:16:17 +02:00
import import cran: Document "recursive" option. 2018-10-17 13:06:25 +02:00
system guix system: search: Display all provision names as 'shepherdnames'. 2018-05-01 23:29:03 +02:00
archive.scm Switch to Guile-Gcrypt. 2018-09-04 17:25:11 +02:00
authenticate.scm Switch to Guile-Gcrypt. 2018-09-04 17:25:11 +02:00
build.scm build: Default to https://ci.guix.info for substitutes. 2018-12-04 10:57:56 +01:00
challenge.scm scripts: Factorize option parsing sans 'GUIX_BUILD_OPTIONS'. 2017-10-28 09:45:53 +02:00
container.scm scripts: Add missing -V option to commands that document it. 2018-07-07 18:10:31 +02:00
copy.scm scripts: All commands enable build hooks by default. 2017-12-07 23:12:37 +01:00
describe.scm describe: In 'channels' format, quote the channel name. 2018-12-07 15:14:12 +01:00
download.scm Switch to Guile-Gcrypt. 2018-09-04 17:25:11 +02:00
edit.scm ui: Rename '_' to 'G_'. 2017-05-03 16:16:17 +02:00
environment.scm Use 'mapm' instead of 'sequence' + 'map'. 2018-12-19 23:52:24 +01:00
gc.scm scripts: gc: Report size in MiBs instead of bytes. 2018-06-28 00:29:46 +02:00
graph.scm graph: Add '--system'. 2018-09-16 23:00:44 +02:00
hash.scm guix hash: Fix version and help messages 2018-11-28 10:39:58 +01:00
import.scm guix: Add opam importer. 2018-07-10 10:11:01 +02:00
lint.scm guix: lint: Check for source URIs redirecting to GitHub. 2018-12-24 08:15:17 +05:30
offload.scm offload: Use (guix inferior) instead of (ssh dist node). 2018-12-24 16:06:32 +01:00
pack.scm pack: List the available formats. 2018-11-27 19:23:39 +02:00
package.scm guix package: '--show' errors when asked for a non-existent package. 2018-11-11 23:53:29 +01:00
perform-download.scm perform-download: Optionally report a "download-progress" trace. 2018-09-27 23:21:53 +02:00
processes.scm Add 'guix processes'. 2018-10-29 00:13:38 +01:00
publish.scm publish: Add a 'Cache-Control' header on /nar responses. 2018-12-17 23:33:42 +01:00
pull.scm pull: Add missing monadic 'return'. 2018-11-07 21:56:16 +01:00
refresh.scm scripts: refresh: Allow searching recursively. 2018-12-24 12:19:17 +02:00
repl.scm repl: Load user's initialization file. 2018-12-03 08:04:51 +03:00
size.scm Remove most references to hydra.gnu.org. 2018-12-04 10:57:56 +01:00
substitute.scm substitute: Ignore irrelevant narinfo signatures. 2018-12-14 00:02:59 +01:00
system.scm guix system: Clarify the three strategies available. 2018-12-18 16:04:25 +01:00
weather.scm weather: Fix pasto in --version output. 2018-07-07 18:10:31 +02:00