Remove jq completely to not require it as a dependency.

This commit is contained in:
Armando Lüscher 2016-11-22 18:06:16 +01:00
parent 0085e6f83b
commit e7ee3a7dd5
No known key found for this signature in database
GPG Key ID: 3D71085D14920359

View File

@ -7,7 +7,6 @@
# #
# Dependencies: # Dependencies:
# ------------- # -------------
# - jq (get it here: https://stedolan.github.io/jq/download)
# - oathtool (When using 2 Factor Authentication) # - oathtool (When using 2 Factor Authentication)
# #
# Author: Armando Lüscher <armando@noplanman.ch> # Author: Armando Lüscher <armando@noplanman.ch>
@ -34,10 +33,6 @@
######## ########
dns_cyon_add() { dns_cyon_add() {
if ! _exists jq; then
_fail "Please install jq to use cyon.ch DNS API."
fi
_load_credentials _load_credentials
_load_parameters "$@" _load_parameters "$@"
@ -165,8 +160,8 @@ _login() {
_debug login_response "${login_response}" _debug login_response "${login_response}"
# Bail if login fails. # Bail if login fails.
if [ "$(echo "${login_response}" | jq -r '.onSuccess')" != "success" ]; then if [ "$(echo "${login_response}" | _get_response_success)" != "success" ]; then
_fail " $(echo "${login_response}" | jq -r '.message')" _fail " $(echo "${login_response}" | _get_response_message)"
fi fi
_info " success" _info " success"
@ -199,8 +194,8 @@ _login() {
_debug otp_response "${otp_response}" _debug otp_response "${otp_response}"
# Bail if OTP authentication fails. # Bail if OTP authentication fails.
if [ "$(echo "${otp_response}" | jq -r '.onSuccess')" != "success" ]; then if [ "$(echo "${otp_response}" | _get_response_success)" != "success" ]; then
_fail " $(echo "${otp_response}" | jq -r '.message')" _fail " $(echo "${otp_response}" | _get_response_message)"
fi fi
_info " success" _info " success"
@ -227,11 +222,11 @@ _domain_env() {
_check_2fa_miss "${domain_env_response}" _check_2fa_miss "${domain_env_response}"
domain_env_success=$(echo "${domain_env_response}" | jq -r '.authenticated') domain_env_success=$(echo "${domain_env_response}" | _egrep_o '"authenticated":\w*' | cut -d : -f 2)
# Bail if domain environment change fails. # Bail if domain environment change fails.
if [ "${domain_env_success}" != "true" ]; then if [ "${domain_env_success}" != "true" ]; then
_fail " $(echo "${domain_env_response}" | jq -r '.message')" _fail " $(echo "${domain_env_response}" | _get_response_message)"
fi fi
_info " success" _info " success"
@ -252,14 +247,11 @@ _add_txt() {
_check_2fa_miss "${addtxt_response}" _check_2fa_miss "${addtxt_response}"
addtxt_message=$(echo "${addtxt_response}" | jq -r '.message') addtxt_message=$(echo "${addtxt_response}" | _get_response_message)
addtxt_status=$(echo "${addtxt_response}" | jq -r '.status') addtxt_status=$(echo "${addtxt_response}" | _get_response_status)
# Bail if adding TXT entry fails. # Bail if adding TXT entry fails.
if [ "${addtxt_status}" != "true" ]; then if [ "${addtxt_status}" != "true" ]; then
if [ "${addtxt_status}" = "null" ]; then
addtxt_message=$(echo "${addtxt_response}" | jq -r '.error.message')
fi
_fail " ${addtxt_message}" _fail " ${addtxt_message}"
fi fi
@ -306,14 +298,11 @@ _delete_txt() {
_check_2fa_miss "${delete_txt_response}" _check_2fa_miss "${delete_txt_response}"
delete_txt_message=$(echo "${delete_txt_response}" | jq -r '.message') delete_txt_message=$(echo "${delete_txt_response}" | _get_response_message)
delete_txt_status=$(echo "${delete_txt_response}" | jq -r '.status') delete_txt_status=$(echo "${delete_txt_response}" | _get_response_status)
# Skip if deleting TXT entry fails. # Skip if deleting TXT entry fails.
if [ "${delete_txt_status}" != "true" ]; then if [ "${delete_txt_status}" != "true" ]; then
if [ "${delete_txt_status}" = "null" ]; then
delete_txt_message=$(echo "${delete_txt_response}" | jq -r '.error.message')
fi
_err " ${delete_txt_message} (${_identifier})" _err " ${delete_txt_message} (${_identifier})"
else else
_info " success (${_identifier})" _info " success (${_identifier})"
@ -324,6 +313,18 @@ _delete_txt() {
_info "" _info ""
} }
_get_response_message() {
_egrep_o '"message":"[^"]*"' | cut -d : -f 2 | tr -d '"'
}
_get_response_status() {
_egrep_o '"status":\w*' | cut -d : -f 2
}
_get_response_success() {
_egrep_o '"onSuccess":"[^"]*"' | cut -d : -f 2 | tr -d '"'
}
_check_2fa_miss() { _check_2fa_miss() {
# Did we miss the 2FA? # Did we miss the 2FA?
if test "${1#*multi_factor_form}" != "$1"; then if test "${1#*multi_factor_form}" != "$1"; then