mirror of
https://github.com/tj/git-extras.git
synced 2026-09-10 15:36:21 -04:00
Merge gi_extension project into git extras as git-ignore-io
* gi_extension(https://github.com/Lee-W/gi_extension)
This commit is contained in:
parent
bb4acf0757
commit
87d61693b1
119
bin/git-ignore-io
Normal file
119
bin/git-ignore-io
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
#/bin/sh
|
||||
|
||||
gitignore_io_url="https://www.gitignore.io/api/"
|
||||
|
||||
default_path="$HOME/.gi_list"
|
||||
gi_list=`cat $default_path | tr "," "\n"`
|
||||
|
||||
update_gi_list() {
|
||||
curl -L -s "${gitignore_io_url}/list" > ~/.gi_list
|
||||
}
|
||||
|
||||
print_in_alphabetical_order() {
|
||||
for i in {a..z};
|
||||
do
|
||||
echo "$gi_list" | grep "^$i" | tr "\n" " "
|
||||
echo
|
||||
done
|
||||
}
|
||||
|
||||
print_in_table_format() {
|
||||
table_width=5
|
||||
coulumn_width=25
|
||||
|
||||
counter=0
|
||||
for item in $gi_list; do
|
||||
printf "%-${coulumn_width}s" $item
|
||||
counter=$(($counter+1))
|
||||
if [[ $(($counter%$table_width)) -eq 0 ]]; then
|
||||
echo
|
||||
fi
|
||||
done
|
||||
echo
|
||||
}
|
||||
|
||||
print_last_modified_time() {
|
||||
local gi_list_date=`stat -f "%t%Sm" $default_path`
|
||||
echo "Last update time: $gi_list_date"
|
||||
}
|
||||
|
||||
gi() {
|
||||
curl -L -s $gitignore_io_url/$1
|
||||
}
|
||||
|
||||
gi_export() {
|
||||
gi $1 > .gitignore
|
||||
}
|
||||
|
||||
gi_append() {
|
||||
gi $1 >> .gitignore
|
||||
}
|
||||
|
||||
show_usage() {
|
||||
echo "usage: gi <types>"
|
||||
echo " [-a| -e] <types>"
|
||||
echo " [-u| -t| -l| -L]"
|
||||
echo " [-h]"
|
||||
}
|
||||
|
||||
print_help_message() {
|
||||
echo "-a [types] apeend new .gitignore content to .gitignore under the current directory"
|
||||
echo "-e [types] export new .gitignore to the current directory (The old one will be replaced.)"
|
||||
echo "-L print ~/.gi_list in alphabetical order"
|
||||
echo "-l print ~/.gi_list in table format"
|
||||
echo "-u update ~/.gi_list"
|
||||
echo "-t show the last modified time of ~/.gi_list"
|
||||
echo "-h show help"
|
||||
}
|
||||
|
||||
|
||||
update_gi_list &
|
||||
if [[ $# -eq 0 ]]; then
|
||||
show_usage
|
||||
else
|
||||
case $1 in
|
||||
-a|-e)
|
||||
opt=$1
|
||||
shift
|
||||
if [[ $# -eq 0 ]]; then
|
||||
show_usage
|
||||
exit
|
||||
fi
|
||||
|
||||
gi_to_curl=`echo $@ | tr " " ","`
|
||||
case $opt in
|
||||
-a)
|
||||
gi_append $gi_to_curl
|
||||
;;
|
||||
-e)
|
||||
gi_export $gi_to_curl
|
||||
;;
|
||||
esac
|
||||
|
||||
exit
|
||||
;;
|
||||
-t)
|
||||
print_last_modified_time
|
||||
;;
|
||||
-u)
|
||||
update_gi_list
|
||||
;;
|
||||
-L)
|
||||
print_in_alphabetical_order
|
||||
;;
|
||||
-l)
|
||||
print_in_table_format
|
||||
;;
|
||||
-h)
|
||||
print_help_message
|
||||
;;
|
||||
-*)
|
||||
echo No Such option
|
||||
show_usage
|
||||
;;
|
||||
*)
|
||||
gi_to_curl=`echo $@ | tr " " ","`
|
||||
gi $gi_to_curl
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
Loading…
Reference in a new issue