diff options
Diffstat (limited to 'upload_amo.sh')
-rwxr-xr-x | upload_amo.sh | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/upload_amo.sh b/upload_amo.sh index 71e12ca..3739c9c 100755 --- a/upload_amo.sh +++ b/upload_amo.sh @@ -23,6 +23,27 @@ API_KEY="$2" SECRET="$3" XPI_PATH="$4" +escape_regex_special() { + printf %s "$1" | sed 's/\([]\.*[-]\)/\\\1/g' +} + +# Note: We don't actually parse JSON. We extract needed keys with sed regexes +# which does not work in the general case but is sufficient for now. +_get_json_key() { + local KEY_REG="$(escape_regex_special "$1")" + printf %s "$2" | + awk '{printf "%s", $0}' | + sed 's/^.*\("'"$KEY_REG"'"[[:space:]]*:[[:space:]]*"\([^"]*\)"\).*$/\2/' +} + +get_json_key() { + local JSON="$2" + local VALUE="$(_get_json_key "$@")" + if [ "x$VALUE" != "x$JSON" ]; then + printf %s "$VALUE" + fi +} + base64url() { printf %s "$1" | base64 -w 0 | tr '/+' '_-' | tr -d '=' } |