summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--shell_utils.sh53
-rwxr-xr-xupload_amo.sh21
2 files changed, 21 insertions, 53 deletions
diff --git a/shell_utils.sh b/shell_utils.sh
deleted file mode 100644
index 51361f5..0000000
--- a/shell_utils.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-# This file is part of Haketilo
-#
-# Copyright (C) 2021, Wojtek Kosior
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the CC0 1.0 Universal License as published by
-# the Creative Commons Corporation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# CC0 1.0 Universal License for more details.
-
-map_set_instr() {
- printf "%s__%s='%s'" "$1" "$2" "$3"
-}
-
-map_set() {
- eval "$(map_set_instr "$@")"
-}
-
-map_set_export() {
- eval "export $(map_set_instr "$@")"
-}
-
-map_get() {
- eval "printf %s \"\$$1__$2\""
-}
-
-map_del_instr() {
- printf 'unset %s__%s' "$1" "$2"
-}
-
-map_del() {
- eval "$(map_del_instr "$@")"
-}
-
-sanitize() {
- printf %s "$1" | tr /.- _
-}
-
-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" |
- sed 's/\(.*"'"$KEY_REG"'"[[:space:]]*:[[:space:]]*"\([^"]*\)"\)\?.*/\2/' |
- grep . | head -1
-}
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 '='
}