Hi,

Ricardo Wurmus <rek...@elephly.net> skribis:

> “guix pack” is great for deployment of applications to servers that
> don’t have Guix.  For a project I have a “deploy” target in my Makefile
> that essentially does this:
>
>     cat $(shell guix pack -RR -e '(load "guix.scm")' -S /bin=bin) | ssh 
> remote-server "tar xvzf - -C /where/i/want/it"
>
> This is fine for small deployments, but it’s a little annoying that it
> transfer *all* the files, even those that haven’t changed.  So I thought
> I could use rsync here, but it’s inconvenient that “guix pack” will do
> what it was designed for and produce a single file bundle.
>
> What do you think about adding an output format that is no format at all
> but a file enumeration printed to stdout?  That way I could use “guix
> pack” to produce a list of files to transfer and use that to transfer
> only the unchanged files.  Alternatively, perhaps we could have a
> “directory” format that merely copies (or links) the files to a new
> directory root.

You could untar the pack and rsync it.  We could have a ‘directory’
format but I’m afraid it would duplicate too much of the tarball code
(we’d have to check).

When you think about it, you could just as well have Guix on the other
side and then use ‘guix copy’… or maybe use Guix directly there.  (As in
‘guix pack --localstatedir -RR guix’.)

I know it’s not what you had in mind, but it seems to me that there’s a
continuum here, and maybe there’s just a gap to bridge to allow for
smoother workflows?

Thanks,
Ludo’.

Reply via email to