Merge pull request #175 from jhillyerd/gi-fix

This commit is contained in:
Bruno Pinto 2014-07-20 00:41:49 -03:00
commit 811e469275
4 changed files with 53 additions and 18 deletions

23
plugins/gi/README.md Normal file
View File

@ -0,0 +1,23 @@
gitignore (gi) plugin
=====================
This plugin provides a simple command line interface to gitignore.io - a
website that generates .gitignore files based on your project requirements.
## Completions
The first step is to download the latest language list from gitignore.io so
that the fish completions can be updated. Run `gi update-completions` to
download the completions, they will be stored in
`~/.config/fish/completions/gi.fish`
You should repeat this occasionally to keep up to date.
## Usage
Type `gi` followed by TAB to view the list of languages available. To generate
a .gitignore file, specify the list of languages you are interested in and pipe
the output into the destination file. Example for a go-lang project:
gi go tags vagrant > .gitignore
git add .gitignore

View File

@ -0,0 +1,21 @@
function _update_gi_completions -d "Update completions for gitignore.io"
set compl_dir ~/.config/fish/completions
set compl_file "$compl_dir/gi.fish"
# Download list of ignore types
set -l gi_list (gi list | tr ',' ' ')
if test -z $gi_list
echo "No result returned from gitignore.io" >&2
return 1
end
# Backup existing completions
if test -e $compl_file
mv -f $compl_file {$compl_file}.bak
else if not test -d $compl_dir
mkdir -p $compl_dir
end
# Output new completions
echo complete -c gi -a \"update-completions $gi_list\" >$compl_file
end

9
plugins/gi/gi.fish Normal file
View File

@ -0,0 +1,9 @@
function gi -d "gitignore.io cli for fish"
if test $argv[1] = 'update-completions'
_update_gi_completions
return $status
end
set -l params (echo $argv|tr ' ' ',')
curl -s http://www.gitignore.io/api/$params
end

View File

@ -1,18 +0,0 @@
# gitignore.io cli for fish
function gi
set -l params (echo $argv|tr ' ' ',')
curl -s http://www.gitignore.io/api/$params
end
# enable the complation by invoking `gi list`
if not set -q -g gi_list
ping -t 2 -c 1 -q gitignore.io >/dev/null
set gi_available $status
if test $gi_available
set -g gi_list (gi list| tr ',' ' ' ^/dev/null)
end
end
complete -c gi -a "$gi_list"