refactor: eliminate parsing functions in preference of read -r command
This commit is contained in:
40
mc
40
mc
@@ -78,32 +78,6 @@ function backup() {
|
||||
popd
|
||||
}
|
||||
|
||||
|
||||
function first() {
|
||||
echo "$1"
|
||||
}
|
||||
|
||||
function second() {
|
||||
first $(rest "${@}")
|
||||
}
|
||||
|
||||
function rest() {
|
||||
drop 1 "$@"
|
||||
}
|
||||
|
||||
function drop() {
|
||||
if (( 1 == "$#" )); then
|
||||
return 0
|
||||
fi
|
||||
|
||||
if (( "$#" < 1 )); then
|
||||
return 1
|
||||
fi
|
||||
|
||||
shift $(( 1 + $1 ))
|
||||
echo "$@"
|
||||
}
|
||||
|
||||
function usage() {
|
||||
printf "API key for my-mc must be exported using 'export MY_MC_API_KEY=<my-mc api key>'\n\n"
|
||||
printf "Backup directory can be changed from default ~/mc-mc_backup/ by using 'export MY_MC_BACKUP_DIR=</path/to/dir/>'\n\n"
|
||||
@@ -124,18 +98,22 @@ function main() {
|
||||
|
||||
for command in "${!commands[@]}"; do
|
||||
if [[ "$1" == "${command}" ]]; then
|
||||
case "$(second ${commands[$1]})" in
|
||||
|
||||
local endpoint method body
|
||||
read -r endpoint method body <<<"${commands[$1]}"
|
||||
|
||||
case "${method}" in
|
||||
"POST")
|
||||
curl -sS "${headers[@]}" -X "$(second ${commands[$1]})" "${base_url}$(first ${commands[$1]})" \
|
||||
-d "$(printf "$(drop 2 ${commands[$1]})\n" "${args[@]}")"
|
||||
curl -sS "${headers[@]}" -X "${method}" "${base_url}${endpoint}" \
|
||||
-d "$(printf "${body}\n" "${args[@]}")"
|
||||
echo ""
|
||||
;;
|
||||
"GET")
|
||||
curl -sS "${headers[@]}" -X "$(second ${commands[$1]})" "${base_url}$(first ${commands[$1]})"
|
||||
curl -sS "${headers[@]}" -X "${method}" "${base_url}${endpoint}"
|
||||
echo ""
|
||||
;;
|
||||
"FUNC")
|
||||
eval "$(first ${commands[$1]})" "${args[@]}"
|
||||
eval "${endpoint}" "${args[@]}"
|
||||
;;
|
||||
*)
|
||||
echo "ERROR: Invalid state. Check for typo in command array."
|
||||
|
Reference in New Issue
Block a user