dotfiles/scripts/.local/bin/nomie
Marty Oehme 8fd025653a
scripts: Improve nomie credentials options
Added option to input nomie api key either directly as an environment
variable, or to pass a command (also through env var) to nomie which it
will call to get the api key.

So, if you have e.g. pass as password manager running, you can just do
`NOMIE_API_KEY_CMD="pass show path/to/key/file"` and it will use the
returned credentials.
2021-03-30 22:21:42 +02:00

47 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env sh
# this script logs a new entry in nomie - https://nomie.app/ - an open source habit tracker and journaling app
# It will very simply take the text input and pass it on.
getapikey() {
if [ -n "$NOMIE_API_KEY_CMD" ]; then
# shellcheck disable=2005
echo "$($NOMIE_API_KEY_CMD)"
elif [ -n "$NOMIE_API_KEY" ]; then
echo "$NOMIE_API_KEY"
else
exit 1
fi
}
sendtonomie() {
apikey=$(getapikey)
if [ "$?" -eq 1 ]; then
echo "No api key found."
exit 1
fi
req="{\"note\":\"$*\",\"api_key\":\"$apikey\"}"
echo "$req"
curl -s -H "Content-Type: application/json" --compressed --data "$req" https://nomieapi.com/log
}
usage() {
printf """
simple nomie logging script.
usage: nomie \"note content to upload to nomie with #tags and +mentions\"
Will upload the content passed in on to nomie, using your api key.
Set you api key through the \"NOMIE_API_KEY=<my-api-key-here>\" env var,
or set a function to return the api key from \"NOMIE_API_KEY_CMD=<my-cmd>\" which will
be used preferentially.
"""
}
# print super basic help
if [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$#" -eq 0 ]; then
usage
exit 0
fi
sendtonomie "$@"