Skip to main content

A CLI to create, edit, view and list your GitHub Gists

Project description

-**Table of Contents** *generated with [DocToc](http://doctoc.herokuapp.com/)*
-
- [Gists.cli](#gistscli)
- [For the Casual User](#for-the-casual-user)
- [Installation](#installation)
- [Authentication](#authentication)
- [Usage](#usage)
- [For The Advanced User](#for-the-advanced-user)
- [Tips](#tips)
- [Usage](#usage-1)
- [For the Developer](#for-the-developer)
- [Installation](#installation-1)
- [Non-Mac/OS X System Testing](#non-macos-x-system-testing)
- [In Development](#in-development)
- [Issues and Roadmap](#issues-and-roadmap)

# Gists.cli


> I'm a Developer who uses VI and the like. iPad and iPhone apps are great, but when I really need a Gist i'm at the command line.

An easy to use CLI to manage *your* GitHub Gists. Create, edit, append, view, search and backup your Gists.

- Github - https://github.com/khilnani/gists.cli
- Python Package - https://pypi.python.org/pypi/gists.cli

# For the Casual User

## Installation

- Install the Python package manager PIP (http://www.pip-installer.org/)
- Run `yum install python-setuptools` If you are on a fresh Linux server/VM
- Run `sudo easy_install pip`
- Once PIP is installed,
- Run `sudo pip install gists.cli`
- Run `sudo pip install gists.cli --upgrade` if upgrading.

## Authentication


- By default the application will attempt to use Basic Auth to authenticate i.e. will prompt for username/password each time it is run.
- If the file `~/.git-credentials` is available, it will use the first OAuth token entry.
- If the file `~/.gists` with a Github OAuth token is found, it will be given preference over the above two mechanisms.
- Run `./gists token|t` to avoid the username/password prompt and to use an OAuth Token other than `~/.git-credentials`. Saves to `~/.gists`.

## Usage

> *All the commands below are interactive and will prompt for user input (eg. public/private, descriptions) and confirmations (eg. directory creation).*

*Each Action/Command has multiple alias e.g. Create can be invoked not only by `gists new|create`, but also `gists c|n|new|create|--new|--create|-n|-c` Run `gists help|--help|-h|h` for more info.*

**List all your Gists**

- `gists`

**View a Gist**

- `gists ID` - View Gist with ID on the console.
- `gists ID PATH` - Download Gist files with ID to PATH. Will prompt for confirmation.


**Create a Gist**

We'll prompt for stuff like Gist type (public/private), Description and Gist Content as needed.

- `gists new` or `./gists create`.
- `gists FILE` - Create a Gist using the contents of FILE
- `gists "Content"` - Create a Gist using the string "Content"

To avoid the Public/private Gist type prompt -

> Bool should be `true` for Public, `false` for Private

- `gists Bool FILE`
- `gists Bool "Content"`



# For The Advanced User

## Tips

- Each Action/Command has multiple alias e.g. Create can be invoked not only by `gists new|create`, but also `gists c|n|new|create|--new|--create|-n|-c` Run `gists help|--help|-h|h` for more info
- Add `debug|--debug` to the end of any execution to view low level details. eg. `./gists debug`. *NOTE - This will reveal your OAuth ID but not your Basic Auth password.*
- Add `supress|silent|--supress|--silient` at the end of any execution to supress any prompts of confirmations if you like to live dangerously.
- eg. `./gists -n FILE --supress --debug`.

## Usage

*All the commands below are interactive and will prompt for user input.*

**List all your Gists**

- `gists` - list your Gists.

**View a Gist**

- `gists ID` - view Gist with ID on the console.
- `gists ID PATH` - download Gist files with ID to PATH. Will prompt for confirmation.

**Setup OAuth token**

- `gists token|t` - setup to use OAuth Token other than `~/.git-credentials`. Saves to `~/.gists`.

**Create a Gist**

> - FILE - is a file path, relative or absolute.
> - Bool - True for Public, False for Private. Supports True, False, 1, 0, Yes, No, y, n. Case-insensitive
> - Description and Content - Text content within quotes


Without specifying a command (eg. create, new), the application will trying to figure it out. However, this supports fewer combinations of arguments.

- `gists FILE`
- `gists "Content"`
- `gists Bool FILE`
- `gists Bool "Content"`
- `gists "Description" FILE`
- `gists "Description" "Content"`
- `gists Bool "Description" FILE`
- `gists Bool "Description" "Content"`


If you like to type, or be specific (will prompt for stuff like Gist type, Description and Gist Content etc as needed).

- `gists new|n|create|c`
- `gists new|n|create|c FILE`
- `gists new|n|create|c "Content"`
- `gists new|n|create|c Bool FILE`
- `gists new|n|create|c Bool "Content"`
- `gists new|n|create|c "Description" FILE`
- `gists new|n|create|c "Description" "Content"`
- `gists new|n|create|c Bool "Description" FILE`
- `gists new|n|create|c Bool "Description" "Content"`

# In Development

**Update**

- `gists update|u ID [PARAMS]` - Update a Gist. Content sent via Console, Clipboard or File.
- `gists append|a ID [PARAMS]` - Append to a Gist. Content sent via Console, Clipboard or File.

**Delete**

- `gists delete|del|d ID` - Delete a Gist.

**Export/Backup**

- `gists backup|b [DIR]` - Backup all Gists in the user's account.

**Search**

- `gists search|query|q QUERY` - Search Gists.

**Misc**

- `gists star` - List starred Gists


# For the Developer

## Installation

If you would like to contribute changes to the code base

- Get the code
- Fork and `git clone` the fork, or ...
- `git clone https://github.com/khilnani/gists.cli.git`, or ...
- Download the latest Tag Archive from https://github.com/khilnani/gists.cli
- *Downloading the Archive is not recommended, since it won't be easy to merge code back*.
- Install dependencies by running `./dependencies.sh`.
- This installs PIP (if not already installed) and then installs the dependencies.
- Run the installer as below. If you get any error run with `sudo ...`
- `./install.py` with no arguments will install to `/usr/local/bin`.
- `./install.py INSTALL_PATH` will install to a specific directory.

## Non-Mac/OS X System Testing

- I use http://VagrantUp.com, http://ansibleworks.com and http://www.virtualBox.org to test on CentOS and Ubuntu.
- Prerequisites
- Vagrant
- Install Vagrant - http://vagrantup.com/downloads
- Ansible
- Install Ansible on Mac OS X or CentOS/RHEL - https://github.com/khilnani/devops/tree/master/ansible
- Virtual Box
- Install VirtualBox - https://www.virtualbox.org/wiki/Downloads to download/install
- Run
- Change directory to `./_vagrant`
- Run `vagrant up` to install both CentOS6.5 and Ubuntu, or`vagrant up centos` or `vagrant up ubuntu` - start the VMs
- If my Boxes are not already installed, they will be downloaded and installed
- Run `vagrant ssh centos` or `vagrant ssh ubuntu` - to ssh over
- Once you SSH over, the current directory is available at `/git_data` on the VM
- Debug
- Change directory to `./_vagrant`
- Run `./debug.ssh up centos` or `./debug.ssh up ubuntu` - This runs Vagrant with Debug Level INFO

# Issues and Roadmap

- Take a look at https://github.com/khilnani/gists.cli/issues to view Issues and Milestones.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gists.cli-0.23.tar.gz (20.6 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page