Add gitignore usage information, fix empty api calls
Added general usage information. Made sure gitignore api is never called without any arguments. Made script fzf aware -- if it finds fzf it can be invoked without arguments, if it does not it will display usage information instead.
This commit is contained in:
parent
84aae314f5
commit
d411be708e
1 changed files with 40 additions and 7 deletions
|
@ -9,11 +9,18 @@
|
|||
# Will *overwrite* any previous .gitignore file that exists in
|
||||
# current directory.
|
||||
#
|
||||
# When called without arguments will load all possible arguments
|
||||
# as fzf searchable list if fzf is in path.
|
||||
#
|
||||
# Enables completion for zsh in git/.config/shell/zshrc.d/_gitignore_completions.zsh
|
||||
|
||||
__get_items() {
|
||||
if [ "$1" = "" ]; then
|
||||
echo "gitignore definition generation needs at least one argument."
|
||||
exit 1
|
||||
fi
|
||||
if [ "$savetofile" = "true" ]; then
|
||||
__call_url "$@" | tee .gitignore
|
||||
__call_url "$@" >>.gitignore
|
||||
else
|
||||
__call_url "$@"
|
||||
fi
|
||||
|
@ -25,22 +32,48 @@ __call_url() {
|
|||
}
|
||||
|
||||
gitignore() {
|
||||
if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
|
||||
usage
|
||||
exit 0
|
||||
# just print to stdout or save locally?
|
||||
if [ "$1" = "-f" ]; then
|
||||
elif [ "$1" = "-f" ] || [ "$1" = "--file" ]; then
|
||||
savetofile=true
|
||||
shift
|
||||
fi
|
||||
|
||||
IFS=","
|
||||
if [ "$#" -eq 0 ]; then
|
||||
if type fzf >/dev/null 2>&1; 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
|
||||
usage
|
||||
fi
|
||||
else
|
||||
__get_items "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
usage() {
|
||||
printf "%s\n" \
|
||||
"" \
|
||||
" gitignore Quickly generate a gitignore definition." \
|
||||
"" \
|
||||
" Usage: gitignore [-h] [vim] [linux] [javascript] [...]" \
|
||||
"" \
|
||||
" Arguments:" \
|
||||
"" \
|
||||
" -h | --help Print out this help." \
|
||||
"" \
|
||||
" -f | --file Append gitignore definition to .gitignore file" \
|
||||
" instead of stdout." \
|
||||
"" \
|
||||
" Arguments will be passed along to gitignore.io for parsing and " \
|
||||
" gitignore definition generation. By default only prints to stdout." \
|
||||
"" \
|
||||
""
|
||||
}
|
||||
|
||||
gitignore "$@"
|
||||
|
|
Loading…
Reference in a new issue