gistribute
gistribute is a simple file distribution system based on GitHub Gists.
I decided to make gistribute when I found myself sharing configuration files
and such with others by placing all of them into a Gist along with a little
Bash script that curl
ed all of the files, via their raw URLs, to the right
location on the other's computer. This program removes the need to make that
script, and the need to update the raw URLs in that script whenever you edit
a file in the Gist.
Installation
gem install gistribute
How It Works
gistribute looks at the filename that you enter on Gist to find all of the data that it needs to download the file to the other user's computer. It allows you to choose what gistribute will call the file when it is installing it, and where it will install the file.
If, for example, you were sharing a ~/.vimrc
file, and you wanted gistribute to
call it "Vim configuration" when it was installing it, you would name the file
Vim configuration || ~|.vimrc
. If the filename contains the sequence ||
,
anything before that will be considered the description of that file, and
anything after it the installation path. If there is no ||
, gistribute will
use the name of the file (without the path to it) as the default description.
Usage
For a detailed description of the available options, try one of the following:
gistribute upload -h
gistribute install -h
Uploads
To upload a gistribution, use the upload
subcommand and pass in as many files
or directories as you would like. Directories will be recursively processed and
uploaded. The install paths will be the same ones that were used on your
system. The home directory will be handled automatically.
gistribute upload ~/.bashrc ~/.bash_profile
Downloads
If the resulting Gist link was, for example, https://gist.github.com/user/123456
,
the receiver would be able to run either of these commands to download the files
to ~/.bashrc
and ~/.bash_profile
:
gistribute install 123456
gistribute install https://gist.github.com/user/123456