42 lines
890 B
Bash
Executable file
42 lines
890 B
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
root="$(git rev-parse --show-toplevel)"
|
|
|
|
base_url="https://git.alecodes.page/api/v1/gitignore/templates"
|
|
|
|
query="$*"
|
|
|
|
list_available() {
|
|
curl -Ssl $base_url | jq -r '.[]'
|
|
}
|
|
|
|
if [[ -z $query ]]; then
|
|
list_available
|
|
exit 0
|
|
fi
|
|
|
|
tmp_file="$(mktemp)"
|
|
|
|
for template in $query; do
|
|
# Capitalize the string
|
|
template=${template,,}
|
|
template=${template^}
|
|
|
|
response="$(curl -Ssl "$base_url/$template")"
|
|
name="$(echo "$response" | jq -r '.name')"
|
|
content="$(echo "$response" | jq -r '.source')"
|
|
|
|
if [[ "$content" == "null" ]]; then
|
|
echo "Template not found, available options:"
|
|
list_available
|
|
exit 1
|
|
fi
|
|
|
|
printf "\n### %s\n\n%s\n\n" "$name" "$content" >>"$tmp_file"
|
|
done
|
|
|
|
sed -i -ne "/#### -- TEMPLATES BEGIN -- ####/ {p; r $tmp_file" -e ':a; n; /#### -- TEMPLATES END -- ####/ {p; b}; ba}; p' "$root/.gitignore"
|
|
|
|
rm "$tmp_file"
|