dotfiles/bin/generate-gitignore

20 lines
829 B
Plaintext
Raw Permalink Normal View History

2021-06-24 07:19:21 +00:00
#!/usr/bin/env nix-shell
2021-07-14 11:28:22 +00:00
#! nix-shell --pure -i bash -p curl jq fzf coreutils findutils iputils cacert
2021-01-13 17:10:01 +00:00
# A quick command line interface for creating a gitignore with the API from https://gitignore.io.
# This script comes with a simple caching to avoid creating too much requests.
set -eo pipefail
CACHE_FILE="${XDG_CACHE_DIR:-$HOME/.cache}/gitignore-io.langs.json"
# Check if the language list is downloaded for the last hour (3600 seconds).
2021-06-24 07:19:21 +00:00
if [[ ! -e $CACHE_FILE ]] || test $(expr $(date "+%s") - $(date -r $CACHE_FILE "+%s")) -gt 3600
2021-01-13 17:10:01 +00:00
then
2021-07-14 11:28:22 +00:00
curl --silent --location --output $CACHE_FILE "https://gitignore.io/api/list?format=json"
2021-01-13 17:10:01 +00:00
fi
KEYS=$(jq 'keys | .[] | @text' --raw-output $CACHE_FILE | fzf --multi | while read lang; do echo " .[\"$lang\"].contents"; done | paste -s -d ',')
jq "$KEYS" --raw-output $CACHE_FILE