Browse Source

dns_czechia: fix shfmt formatting

pull/6764/head
CZECHIA-COM 1 week ago
parent
commit
8bb68362b9
  1. 145
      .github/workflows/DNS.yml
  2. 26
      dnsapi/dns_czechia.sh

145
.github/workflows/DNS.yml

@ -51,38 +51,62 @@ jobs:
needs: CheckToken
if: "contains(needs.CheckToken.outputs.hasToken, 'true')"
env:
TEST_DNS : ${{ secrets.TEST_DNS }}
TestingDomain: ${{ secrets.TestingDomain }}
TEST_DNS_NO_WILDCARD: ${{ secrets.TEST_DNS_NO_WILDCARD }}
TEST_DNS_NO_SUBDOMAIN: ${{ secrets.TEST_DNS_NO_SUBDOMAIN }}
TEST_DNS_SLEEP: ${{ secrets.TEST_DNS_SLEEP }}
CASE: le_test_dnsapi
TEST_LOCAL: 1
DEBUG: ${{ secrets.DEBUG }}
http_proxy: ${{ secrets.http_proxy }}
https_proxy: ${{ secrets.https_proxy }}
TokenName1: ${{ secrets.TokenName1}}
TokenName2: ${{ secrets.TokenName2}}
TokenName3: ${{ secrets.TokenName3}}
TokenName4: ${{ secrets.TokenName4}}
TokenName5: ${{ secrets.TokenName5}}
steps:
- uses: actions/checkout@v4
- name: Clone acmetest
run: |
cd ..
git clone --depth=1 https://github.com/acmesh-official/acmetest.git
cp -r acme.sh acmetest/acme.sh
- name: Run acmetest DIRECTLY
env:
CZ_AuthorizationToken: ${{ secrets.TokenValue1 }}
CZ_Zones: ${{ vars.TokenValue2 }}
TestingDomain: ${{ vars.TestingDomain }}
DNSAPI: czechia
rm -rf ./acmetest
git clone --depth=1 https://github.com/acmesh-official/acmetest.git ./acmetest
cp -r ./acme.sh ./acmetest/acme.sh
- name: Run acmetest
run: |
sudo apt-get update && sudo apt-get install -y socat
cd ../acmetest/acme.sh/
mkdir -p ./dnsapi/
cp ../../acme.sh/dnsapi/dns_czechia.sh ./dnsapi/dns_czechia.sh
./acme.sh --issue --dns dns_czechia -d "$TestingDomain" --debug 3 --test
brew install socat cloudflared
export CF_BIN="$(brew --prefix)/bin/cloudflared"
if [ "${{ secrets.TokenName1}}" ] ; then
export ${{ secrets.TokenName1}}="${{ secrets.TokenValue1}}"
fi
if [ "${{ secrets.TokenName2}}" ] ; then
export ${{ secrets.TokenName2}}="${{ secrets.TokenValue2}}"
fi
if [ "${{ secrets.TokenName3}}" ] ; then
export ${{ secrets.TokenName3}}="${{ secrets.TokenValue3}}"
fi
if [ "${{ secrets.TokenName4}}" ] ; then
export ${{ secrets.TokenName4}}="${{ secrets.TokenValue4}}"
fi
if [ "${{ secrets.TokenName5}}" ] ; then
export ${{ secrets.TokenName5}}="${{ secrets.TokenValue5}}"
fi
cd ./acmetest
./letest.sh
MacOS:
runs-on: macos-latest
needs: Docker
env:
TEST_DNS: ${{ secrets.TEST_DNS }}
TestingDomain: ${{ vars.TestingDomain }}
TEST_DNS : ${{ secrets.TEST_DNS }}
TestingDomain: ${{ secrets.TestingDomain }}
TEST_DNS_NO_WILDCARD: ${{ secrets.TEST_DNS_NO_WILDCARD }}
TEST_DNS_NO_SUBDOMAIN: ${{ secrets.TEST_DNS_NO_SUBDOMAIN }}
TEST_DNS_SLEEP: ${{ secrets.TEST_DNS_SLEEP }}
@ -91,58 +115,37 @@ jobs:
DEBUG: ${{ secrets.DEBUG }}
http_proxy: ${{ secrets.http_proxy }}
https_proxy: ${{ secrets.https_proxy }}
TokenName1: ${{ secrets.TokenName1 }}
TokenName2: ${{ secrets.TokenName2 }}
TokenName3: ${{ secrets.TokenName3 }}
TokenName4: ${{ secrets.TokenName4 }}
TokenName5: ${{ secrets.TokenName5 }}
TokenName1: ${{ secrets.TokenName1}}
TokenName2: ${{ secrets.TokenName2}}
TokenName3: ${{ secrets.TokenName3}}
TokenName4: ${{ secrets.TokenName4}}
TokenName5: ${{ secrets.TokenName5}}
steps:
- uses: actions/checkout@v4
- name: Install tools
run: |
brew update
brew install socat cloudflared
echo "cloudflared: $(cloudflared --version)"
- name: Clone acmetest and stage repo as ./acmetest/acme.sh (directory)
run: |
rm -rf ./acmetest
git clone --depth=1 https://github.com/acmesh-official/acmetest.git ./acmetest
rm -rf ./acmetest/acme.sh
mkdir -p ./acmetest/acme.sh
rsync -a \
--exclude 'acmetest/' \
--exclude '.git/' \
./ ./acmetest/acme.sh/
- name: Run acmetest
run: |
export CF_BIN="$(brew --prefix)/bin/cloudflared"
echo "Using CF_BIN=$CF_BIN"
"$CF_BIN" --version || true
if [ "${{ secrets.TokenName1 }}" ] ; then
export ${{ secrets.TokenName1 }}="${{ secrets.TokenValue1 }}"
fi
if [ "${{ secrets.TokenName2 }}" ] ; then
export ${{ secrets.TokenName2 }}="${{ secrets.TokenValue2 }}"
fi
if [ "${{ secrets.TokenName3 }}" ] ; then
export ${{ secrets.TokenName3 }}="${{ secrets.TokenValue3 }}"
fi
if [ "${{ secrets.TokenName4 }}" ] ; then
export ${{ secrets.TokenName4 }}="${{ secrets.TokenValue4 }}"
fi
if [ "${{ secrets.TokenName5 }}" ] ; then
export ${{ secrets.TokenName5 }}="${{ secrets.TokenValue5 }}"
fi
- uses: actions/checkout@v4
- name: Install tools
run: brew install socat
- name: Clone acmetest
run: cd .. && git clone --depth=1 https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
- name: Run acmetest
run: |
if [ "${{ secrets.TokenName1}}" ] ; then
export ${{ secrets.TokenName1}}="${{ secrets.TokenValue1}}"
fi
if [ "${{ secrets.TokenName2}}" ] ; then
export ${{ secrets.TokenName2}}="${{ secrets.TokenValue2}}"
fi
if [ "${{ secrets.TokenName3}}" ] ; then
export ${{ secrets.TokenName3}}="${{ secrets.TokenValue3}}"
fi
if [ "${{ secrets.TokenName4}}" ] ; then
export ${{ secrets.TokenName4}}="${{ secrets.TokenValue4}}"
fi
if [ "${{ secrets.TokenName5}}" ] ; then
export ${{ secrets.TokenName5}}="${{ secrets.TokenValue5}}"
fi
cd ../acmetest
./letest.sh
cd ./acmetest
./letest.sh

26
dnsapi/dns_czechia.sh

@ -10,6 +10,7 @@
#
# Optional environment variables:
# CZ_API_BASE Defaults to https://api.czechia.com
dns_czechia_add() {
fulldomain="$1"
txtvalue="$2"
@ -38,7 +39,6 @@ dns_czechia_add() {
_info "Adding TXT record for $_h in zone $_cz"
_debug "Target URL: $_url"
_debug "Token length: ${#_tk}"
_h_esc=$(printf "%s" "$_h" | sed 's/\\/\\\\/g; s/"/\\"/g')
_txt_esc=$(printf "%s" "$txtvalue" | sed 's/\\/\\\\/g; s/"/\\"/g')
@ -50,13 +50,9 @@ dns_czechia_add() {
_res="$(_post "$_body" "$_url" "" "POST")"
_debug2 "API Response" "$_res"
# Czechia success může být prázdné body (200 OK), takže NEfailujeme na empty.
# Failujeme jen, když v body vidíme explicitní error payload.
if echo "$_res" | grep -q '"status"[[:space:]]*:[[:space:]]*[45][0-9][0-9]'; then
_err "API error details: $_res"
return 1
fi
if _contains "$_res" "\"errors\"" || _contains "$_res" "\"Message\"" || _contains "$_res" "\"message\""; then
# Kontrola chyb (shfmt vyžaduje zarovnání bez \ pokud je to možné)
if _contains "$_res" "\"status\":4" || _contains "$_res" "\"status\":5" ||
_contains "$_res" "\"errors\"" || _contains "$_res" "\"Message\"" || _contains "$_res" "\"message\""; then
_err "API error details: $_res"
return 1
fi
@ -92,8 +88,6 @@ dns_czechia_rm() {
[ -z "$_h" ] && _h="@"
_info "Removing TXT record for $_h in zone $_cz"
_debug "Target URL: $_url"
_debug "Token length: ${#_tk}"
_h_esc=$(printf "%s" "$_h" | sed 's/\\/\\\\/g; s/"/\\"/g')
_txt_esc=$(printf "%s" "$txtvalue" | sed 's/\\/\\\\/g; s/"/\\"/g')
@ -105,11 +99,8 @@ dns_czechia_rm() {
_res="$(_post "$_body" "$_url" "" "DELETE")"
_debug2 "API Response" "$_res"
if echo "$_res" | grep -q '"status"[[:space:]]*:[[:space:]]*[45][0-9][0-9]'; then
_err "API error details: $_res"
return 1
fi
if _contains "$_res" "\"errors\"" || _contains "$_res" "\"Message\"" || _contains "$_res" "\"message\""; then
if _contains "$_res" "\"status\":4" || _contains "$_res" "\"status\":5" ||
_contains "$_res" "\"errors\"" || _contains "$_res" "\"Message\"" || _contains "$_res" "\"message\""; then
_err "API error details: $_res"
return 1
fi
@ -117,6 +108,7 @@ dns_czechia_rm() {
_info "Successfully removed TXT record."
return 0
}
_czechia_load_conf() {
CZ_AuthorizationToken="${CZ_AuthorizationToken:-$(_getaccountconf CZ_AuthorizationToken)}"
[ -z "$CZ_AuthorizationToken" ] && _err "Missing CZ_AuthorizationToken" && return 1
@ -130,11 +122,11 @@ _czechia_load_conf() {
_czechia_pick_zone() {
_fd_input="$1"
_fd=$(echo "$_fd_input" | _lower_case | sed 's/\.$//')
_fd=$(printf "%s" "$_fd_input" | _lower_case | sed 's/\.$//')
_best_zone=""
_zones_space=$(printf "%s" "$CZ_Zones" | sed 's/,/ /g')
for _z in $_zones_space; do
_clean_z=$(echo "$_z" | _lower_case | sed 's/ //g; s/\.$//')
_clean_z=$(printf "%s" "$_z" | _lower_case | sed 's/ //g; s/\.$//')
[ -z "$_clean_z" ] && continue
case "$_fd" in
"$_clean_z" | *".$_clean_z")

Loading…
Cancel
Save