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.
This commit is contained in:
Marty Oehme 2021-03-30 22:21:42 +02:00
parent d71e4a19fb
commit 8fd025653a
Signed by: Marty
GPG Key ID: B7538B8F50A1C800
2 changed files with 40 additions and 4 deletions

View File

@ -0,0 +1 @@
export NOMIE_API_KEY_CMD="pass show websites/nomie.app/apikey"

View File

@ -2,10 +2,45 @@
# 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.
sendtonomie() {
req="{\"note\":\"$*\",\"api_key\":\"$(pass show websites/nomie.app/apikey)\"}"
echo "$req"
curl -s -H "Content-Type: application/json" --compressed --data "$req" https://nomieapi.com/log
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 "$@"