> The NNCP utility might be worth taking a look at. There is a way to set > it up alongside udev to automatically transfer files from connected USB > storage. I did a bit of research at the NNCP util and yes, this can be used for automatic file transfers. We can create a new udev rule that would trigger nncp when a USB device is connected. The directories where the files need to be transferred can be done by creating a config file for NNCP and setting the 'nncpdir' variable as the desired path. Further customization can be done by altering the nncp config and udev rules. I also took a look at the rsync utility which is more widely used but does not provide features like encryption and compression. Although, it does have a feature that transfers only the changes within the file instead of the whole file (better transfer speeds). Personally, I think nncp is a better choice here as it provides more features and the tradeoff for using rsync is not that much. Regards, Shivam On Thu, 6 Apr 2023 at 06:55, Csepp wrote: > > Shivam Madlani writes: > > > Thanks a lot for the feedback!! > > > >> Reading from a disk maybe should happen automagically if it can be > >> detected (and is enabled in some configuration). This might also > >> require some integration with udisks. The complexity of this should > >> not be underestimated. > > > > We can set it up in such a way that on running `guix install {xyz}` it > will first check for mounted drives in /media > > directory and install {xyz} if it's present in the drive. > > > >> Writing packages to a USB stick seems to be closer to a `guix > >> publish` or `guix deploy`. Maybe you can read up on those commands > >> and think of a nice way to publish or deploy a set of packages to a > >> USB stick. This is also relevant for publishing to other p2p > >> networks (IPFS, GNUnet, etc.). > > > > Perhaps, We can introduce a new utility? (maybe something like `guix > sneak`). This will scan for external drives > > and on detecting a drive it will encode and store the nars into it. > > The size of the drive can cause an issue here in case the content to be > encoded is very large. In this case an > > appropriate error message will be displayed. Although this is rare as > flash drives/hard drives have a lot of storage > > capacity these days but it's still a thing to consider. > > > > Another way would be to use `guix publish` itself to do all of this. We > can introduce a flag `--sneak` which instead > > of spawning an HTTP server, encodes and stored into the drive. But i > don't think we should modify an already > > existing utility for this. I would like to hear your thoughts on this. > > The NNCP utility might be worth taking a look at. There is a way to set > it up alongside udev to automatically transfer files from connected USB > storage. >