dotfiles/git/.local/bin/gitignore

47 lines
1 KiB
Plaintext
Raw Normal View History

2020-02-02 17:34:35 +00:00
#!/usr/bin/env sh
#
# Adds call to gitignore.sh api to automatically
# generate a .gitignore file with the individual arguments
# passed in included as ignored packages.
#
# Pass in -f as first argument to save the file as .gitignore
# in the current directory in addition to printing to stdout.
# Will *overwrite* any previous .gitignore file that exists in
# current directory.
#
# Enables completion for zsh in git/.config/shell/zshrc.d/_gitignore_completions.zsh
__get_items() {
if [ "$savetofile" = "true" ]; then
__call_url "$@" | tee .gitignore
else
__call_url "$@"
fi
}
__call_url() {
IFS=","
curl -L -s https://www.gitignore.io/api/"$*"
}
gitignore() {
# just print to stdout or save locally?
if [ "$1" = "-f" ]; then
savetofile=true
shift
fi
IFS=","
if [ "$#" -eq 0 ]; then
for item in $(__get_items list); do
echo "$item"
done | fzf --multi --ansi | paste -s -d "," - |
{ read -r result && __get_items "$result"; }
cat
else
__get_items "$@"
fi
}
gitignore "$@"