Package: gistbin
GistBinGithub Gist client allowing for quick uploads via commandline!InstallingVia pip:pip3 install gistbinManually:git clone https://github.com/chand1012/gistbin.git
cd gistbin
pip install .UsingAuthenticationBecause Gistbin uses the GitHub API, authentication is required. This requires a Github Personal Access Token, instructions of where to find and how to generate can be foundhere. To authenticate, simply rungistbin --loginafter installing and enter the prompted information. Here is an example:octocat@octoserv:~$ gistbin --login
Enter GitHub username: octocat
Enter GitHub access token: ****************
Keyfile saved.
octocat@octoserv:~$The key file is saved at$HOME/.gistbin/auth.json.UsageTo use, simply pipe the file you want to upload into Gistbin like so:octocat@octoserv:~$ cat hello_world.rb | gistbin
https://gist.github.com/octocat/6cad326836d38bd3a7aeBy default, the gist that you upload is given a random name and a.txtextension with a blank description. You can edit this later on the gist's webpage, or you can also pass the--nameand--descto add a name and description respectively. You can also use the shortcut parameters,-nand-d.octocat@octoserv:~$ cat test.cs | gistbin -n "test.cs"
https://gist.github.com/octocat/1305321Another option is by adding file metadata. Here is an example:# name: test.py# desc: this is a test# public: trueprint("Hello world!")octocat@octoserv:~$cattest.py|gistbin
https://gist.github.com/chand1012/4d47f84d9c7b61c99ea9d310e92c7a17Here are a few more examples of metadata in files:// name: test.js// desc: This is a test// public: falseconsole.log("Hello world!");#include<iostream>// name: test.cpp// desc: Hello World in C++// public: trueintmain(){std::cout<<"Hello world!"<<std::endl;return0;}-- name: test.lua-- desc: test program-- public: falseprint("test")If you want to make your gists public, just pass the-por--publicflag.octocat@octoserv:~$ cat requirements.txt | gistbin -p -n "requirements.txt" -d "Gistbin requirements"
https://gist.github.com/chand1012/75b92e8a17906a0f7f7b330154fccbc2If you want to get the raw url for the uploaded file, such as if you want to then download the file immediately onto another machine, you can pass the-ror--rawargument.octocat@octoserv:~$ cat git-author-rewrite.sh | gistbin -n "git-author-rewrite.sh" -r
https://gist.githubusercontent.com/octocat/0831f3fbd83ac4d46451/raw/c197afe3e9ea2e4218f9fccbc0f36d2b8fd3c1e3/git-author-rewrite.shIf you are on a platform that does not support piping in to STDIN, you can instead give GistBin a path to a file with the-for--filecommand. This works with a single file or multiple files, but will not work with the--rawflag. This is also the only way to get GistBin working on Windows.octocat@octoserv:~$ gistbin -f singleBrick.scad singleBrick.stl # this is an ASCII STL, GistBin does not work with binary files.
https://gist.github.com/chand1012/c8f4d8094d6e0b48c8e97e89a2530fadYou can also get the instructions for all of these commands with the help flag:octocat@octoserv:~$ gistbin -h
usage: gistbin [-h] [-n NAME] [-v] [-d DESC] [--login] [-p] [-r] [-f FILES [FILES ...]]

A commandline tool for GitHub Gists.

optional arguments:
  -h, --help            show this help message and exit
  -n NAME, --name NAME  Gives your gist a name. Input as a string. Default is random.
  -v, --verbose         Enables verbose output.
  -d DESC, --desc DESC  Gives your gist a description. Input as a string.
  --login               Login to GitHub Gists.
  -p, --public          Sets your Gist to public.
  -r, --raw             Makes Gistbin return the raw URL instead of the HTML URL of the file.
  -f FILES [FILES ...], --file FILES [FILES ...]
                        Gives Gistbin a list of files to upload. Also works with a single file.Gistbin doesn't just work withcatyou can pipe any terminal output (that ends) into it! For example, if you wanted to list all the files in a directory, you could usels -1 | gistbin -n "filelist.txt". If you wanted to get all the logs from yesterday from the journal, you could runjournalctl --since yesterday | gistbin -n "yesterday-today-journal.log". The possibilities are endless!