feat: add script to add gitignore tempaltes

This commit is contained in:
Alexander Navarro 2025-02-05 13:44:28 -03:00
parent 981e35124a
commit f8a231138a
2 changed files with 46 additions and 0 deletions

42
.devfiles/scripts/gitignore.sh Executable file
View file

@ -0,0 +1,42 @@
#!/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"

4
.gitignore vendored
View file

@ -1,5 +1,9 @@
# Devfiles # Devfiles
.devfiles/bin/**/* .devfiles/bin/**/*
#### -- TEMPLATES BEGIN -- ####
#### -- TEMPLATES END -- ####
# Allow to presever folder structure in excluded folers, should be the last rule # Allow to presever folder structure in excluded folers, should be the last rule
!**/.gitkeep !**/.gitkeep