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