gist/README.md
2015-07-19 18:48:52 +02:00

4 KiB

GIST

GIST is an open-source application to share code. https://www.deblan.io/post/517/gist-est-dans-la-place

Gist

Requirements

  • PHP >= 5.4
  • GIT
  • MySQL, PostgreSQL or SQLite
  • Composer (php)
  • Bower (node)

Installation

$ git clone https://gitlab.deblan.org/deblan/gist
$ cd gist
$ make
$ mv propel-dist.yaml propel.yaml
$ # EDIT propel.yaml (dsn)
$ make propel

Screencast: https://asciinema.org/a/19814

Git

Git can maybe be downloaded from your system's repositories.

$ git config --global user.email "you@example.com"
$ git config --global user.name "Your Name"

Composer

Composer can maybe be downloaded from your system's repositories. Else, follow the next instructions:

Download

# With cURL
curl -sS https://getcomposer.org/installer | php

# With Wget
wget -O - -q https://getcomposer.org/installer | php

You can now use it with php composer.phar [arguments].

Executable

mv composer.phar composer
chmod +x composer

Use it with ./composer [arguments].

Install

Assuming ~/bin exists ans is in $PATH.

mv composer ~/bin

Dependencies Installation (from composer.lock)

composer install

Dependencies Update (will change composer.lock)

composer update

Bower

Install

npm install -g bower

Dependencies Installation (from bower.json)

bower install

Dependencies Update

bower install

Makefile

A Makefile is provided to automate some tasks.

  • make will install application's dependencies via Composer and Bower,
  • make optimize will run Composer's autoloader dump script with classmap
  • make update will update the application
  • make propel will generate propel's files

API

Create a new gist

POST /{locale}/api/create Params:

  • form[title]: String (required, can be empty)
  • form[type]: String (required) Values: html, css, javascript, php, sql, xml, yaml, perl, c, asp, python, bash, actionscript3, text
  • form[content]: String (required)

Responses:

  • Code 200: A json which contains gist's information Example:

{ "url":"f4afbf7296", "gist": { "Id":66, "Title": "test prod", "Cipher": false, "Type": "javascript", "File": "55abcfa7771e0", "CreatedAt": "2015-07-19T16:26:15Z", "UpdatedAt": "2015-07-19T16:26:15Z" } }

* Code ```405```: Method Not Allowed
* Code ```400```: Bad Request

Console
-------

Gist provides a CLI for using API:

$ ./app/console --help create Usage: create [options] [--] []

Arguments: input Input type Type [default: "text"]

Options: -t, --title=TITLE Title of the gist -u, --show-url Display only the gist url -h, --help Display this help message -q, --quiet Do not output any message -V, --version Display this application version --ansi Force ANSI output --no-ansi Disable ANSI output -n, --no-interaction Do not ask any interactive question -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Help: Provides a client to create a gist using the API.

Arguments: input Identify the source of the content: path of the file (eg: /path/to/file) or standard input (-)

 type
     Defines the type of code: html, css, javascript, php, sql, xml, , perl, c, asp, python, bash, actionscript3, text
     Default value: text

Options: --title, -t Defines a title

 --show-url, -u
     Display only the url of the gist

#### Personal instance

If you install Gist on your server, the have to modify the ```base_uri``` of the API.
Edit ```app/bootstrap.php.d/60-api.php``` and modify ```https://gist.deblan.org/```.