#!/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 "$@"