simplify get_credentials(): use read instead of readarray
This commit is contained in:
@@ -176,6 +176,7 @@ log() {
|
|||||||
echorun() {
|
echorun() {
|
||||||
local -n _out="$1"
|
local -n _out="$1"
|
||||||
shift
|
shift
|
||||||
|
[[ -n $sms_dryrun ]] && log -n "dry-run: "
|
||||||
log "%s" "$*"
|
log "%s" "$*"
|
||||||
[[ -z $sms_dryrun ]] && _out=$("$@")
|
[[ -z $sms_dryrun ]] && _out=$("$@")
|
||||||
return $?
|
return $?
|
||||||
@@ -192,26 +193,17 @@ echorun() {
|
|||||||
get_credentials() {
|
get_credentials() {
|
||||||
local -n _cred=$1
|
local -n _cred=$1
|
||||||
local _keyfile="$2" _user="$3" _name=""
|
local _keyfile="$2" _user="$3" _name=""
|
||||||
local -a _keys
|
|
||||||
local -i _n
|
|
||||||
|
|
||||||
log "get_credentials: ref=%s user=%s keyfile=%s" "$!_cred" "$_user" "$_keyfile"
|
log "get_credentials: ref=%s user=%s keyfile=%s" "$!_cred" "$_user" "$_keyfile"
|
||||||
if [[ ! -r "$_keyfile" ]]; then
|
if [[ ! -r "$_keyfile" ]]; then
|
||||||
printf "%s: cannot read keyfile %s\n" "$cmdname" "$_keyfile"
|
printf "%s: cannot read keyfile %s\n" "$cmdname" "$_keyfile"
|
||||||
return 2
|
return 2
|
||||||
fi
|
fi
|
||||||
readarray -t _keys < "$_keyfile"
|
while IFS=: read -r _name _cred; do
|
||||||
log "keyfile contains %d lines" "${#_keys[@]}"
|
log -n "key: name=[%s] creds=[%s]... " "$_name" "$_cred"
|
||||||
for ((_n = 0; _n < ${#_keys[@]}; ++_n)); do
|
[[ $_name = "$_user" ]] && log "match." && return 0
|
||||||
IFS=: read -r _name _cred <<< "${_keys[$_n]}"
|
log "skipping."
|
||||||
log -n "key %d: name:[%s] creds:[%s]..." "$_n" "$_name" "$_cred"
|
done < "$_keyfile"
|
||||||
if [[ $_name = "$_user" ]]; then
|
|
||||||
log "match"
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
log "skipping."
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
printf "%s: cannot find credentials for user '%s'\n" "$cmdname" "$_user"
|
printf "%s: cannot find credentials for user '%s'\n" "$cmdname" "$_user"
|
||||||
return 2
|
return 2
|
||||||
}
|
}
|
||||||
@@ -297,14 +289,13 @@ parse_opts() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
log "keyfile=%s" "$sms_keyfile"
|
|
||||||
log "credentials=%s" "$sms_credentials"
|
log "credentials=%s" "$sms_credentials"
|
||||||
log "message=[%s]" "$sms_message"
|
log "message=[%s]" "$sms_message"
|
||||||
}
|
}
|
||||||
|
|
||||||
# send-sms() - send SMS (GET method)
|
# send-sms() - send SMS (GET method)
|
||||||
send_sms() {
|
send_sms() {
|
||||||
local _login=${sms_credentials%:*} _pass=${sms_credentials#*:} _res=""
|
local _login=${sms_credentials%:*} _pass=${sms_credentials#*:} _res="" _str=""
|
||||||
|
|
||||||
log "send_sms(): login=%s pass=%s" "$_login" "$_pass"
|
log "send_sms(): login=%s pass=%s" "$_login" "$_pass"
|
||||||
echorun _res curl --silent --get --write-out '%{http_code}' \
|
echorun _res curl --silent --get --write-out '%{http_code}' \
|
||||||
@@ -313,10 +304,10 @@ send_sms() {
|
|||||||
--data-urlencode "msg=$sms_message" \
|
--data-urlencode "msg=$sms_message" \
|
||||||
"$sms_url"
|
"$sms_url"
|
||||||
[[ -n $sms_dryrun ]] && _res=200
|
[[ -n $sms_dryrun ]] && _res=200
|
||||||
log "send_sms(): curl status=%s (%s)" "$_res" \
|
_str="${sms_status[$_res]:-${sms_status[-]}}"
|
||||||
"${sms_status[$_res]:-${sms_status[-]}}"
|
log "send_sms(): curl status=%s (%s)" "$_res" "$_str"
|
||||||
if [[ $_res != 200 ]]; then
|
if [[ $_res != 200 ]]; then
|
||||||
printf "%s: %s\n" "$cmdname" "${sms_status[$_res]:-${sms_status[-]}}"
|
printf "%s: %s\n" "$cmdname" "$_str"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -324,7 +315,6 @@ parse_opts "$@"
|
|||||||
send_sms
|
send_sms
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
|
|
||||||
# Indent style for emacs
|
# Indent style for emacs
|
||||||
# Local Variables:
|
# Local Variables:
|
||||||
# sh-basic-offset: 4
|
# sh-basic-offset: 4
|
||||||
|
Reference in New Issue
Block a user