dotfiles/bin/generate-bangs

24 lines
781 B
Plaintext
Raw Permalink Normal View History

2021-06-24 07:19:21 +00:00
#!/usr/bin/env nix-shell
#! nix-shell -i oil -p coreutils curl jq
# Generate the config with Duckduckgo bangs.
# Very useful if you really want just to search as you would in Duckduckgo.
const bang_url = "${BANGS_URL:-https://duckduckgo.com/bang.js}"
const config = {}
# We still have to use some external tools like jq since Oil doesn't support nested objects yet.
# For more information, see https://github.com/oilshell/oil/issues/741
curl --silent --location $bang_url | jq 'sort_by(.t) | .[]' --raw-output --compact-output --sort-keys | while read --line {
write -- $_line | json read :bang
var _data = {}
var trigger = bang['t']
setvar _data['name'] = bang['s']
setvar _data['url'] = bang['u']
setvar config[trigger] = _data
}
json write :config