diff options
author | Gianni Ceccarelli <gianni.ceccarelli@broadbean.com> | 2023-07-26 14:01:38 +0100 |
---|---|---|
committer | Gianni Ceccarelli <gianni.ceccarelli@broadbean.com> | 2023-07-26 14:01:38 +0100 |
commit | 11ee354df339d02a2940cfc91701836798bfe83a (patch) | |
tree | 72eedc8bce5a75e89781683b939286ca9f003e0a /bos-args.sh | |
parent | very rough parameter parser (diff) | |
download | bash-object-system-11ee354df339d02a2940cfc91701836798bfe83a.tar.gz bash-object-system-11ee354df339d02a2940cfc91701836798bfe83a.tar.bz2 bash-object-system-11ee354df339d02a2940cfc91701836798bfe83a.zip |
simpler syntax for assoc assginments
Diffstat (limited to 'bos-args.sh')
-rw-r--r-- | bos-args.sh | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/bos-args.sh b/bos-args.sh index e0f0729..69c27d8 100644 --- a/bos-args.sh +++ b/bos-args.sh @@ -37,14 +37,15 @@ case \"\$1\" in parser_result_var+="-${argname}) $argassign; shift 2 ;; " elif [[ "${argtype["$argname"]}" == assoc ]]; then - argassign="${argassign//\$\{key/\$\{2}" - argassign="${argassign//\$\{value/\$\{3}" + argassign="${argassign//\$\{key/\$\{__args_key}" + argassign="${argassign//\$\{value/\$\{__args_value}" - parser_result_var+="-${argname}) $argassign; shift 3 ;; + parser_result_var+="-${argname}) IFS='=' read -s __args_key __args_value <<<\"\$2\"; $argassign; shift 2 ;; " fi done + # ignore anything else! parser_result_var+="*) shift ;; esac done |