slurpy

Replicate local files matching a glob into etcd

Usage no npm install needed!

<script type="module">
  import slurpy from 'https://cdn.skypack.dev/slurpy';
</script>

README

slurpy

Replicate local files matching a glob into etcd

install

$ npm install slurpy -g

or if you can install docker to use the docker image

usage

slurpy will copy matching files into etcd keys matching the filepath.

If we have a folder (/home/myconfigs) with the following files:

  • /config/test.json
  • /data/apples.txt

Both of these files contain text content - slurpy does not work with binary files (and so is ideal for config scenarios)

To commit these files to etcd:

$ slurpy push --folder /home/myconfigs --key /myconfigs --etcd 127.0.0.1:4001

To pull those files from another etcd:

$ slurpy pull --key /myconfigs --folder /home/myconfigs --etcd 127.0.0.1:4001

docker

To run as a docker container - you must mount the folder as a volume.

You must pass a routable address for etcd from within the docker container.

To push:

$ docker run --rm -v /home/myconfigs:/myfiles binocarlos/slurpy push --folder /myfiles --key /myfiles --etcd 192.168.8.120:4001

To pull:

$ docker run --rm -v /home/myconfigs:/myfiles binocarlos/slurpy pull --folder /myfiles --key /myfiles --etcd 192.168.8.120:4001

globs

when pushing - you can provide a --glob argument which will filter the local files:

$ slurpy push --folder /home/myconfigs --key /myconfigs --glob *.txt

api

usage: slurpy push [options]
usage: slurpy pull [options]

options:

  --folder - the local folder
  --key - the etcd key
  --glob - a file glob to match local files being pushed
  --etcd - the address of an etcd cluster

license

MIT