commit fed20110270c1103598b45181383d7dbd7bdf12f
parent f58ad316d5fc5821e479db500fc9a45963a66d91
Author: Christian Grothoff <christian@grothoff.org>
Date: Thu, 10 Apr 2025 18:26:33 +0200
match postal script to latest specs
Diffstat:
1 file changed, 769 insertions(+), 11 deletions(-)
diff --git a/src/challenger/challenger-send-post.sh b/src/challenger/challenger-send-post.sh
@@ -2,7 +2,7 @@
# This file is in the public domain.
set -eu
-# You need to provide these (set in 'pingen-secrets' file).
+# You need to provide these (set in environment).
# CLIENT_ID=
# CLIENT_SECRET=
# ORG_ID=
@@ -27,18 +27,776 @@ LOGS="$PWD/authorization-post.log"
MESSAGE=$(cat -)
ADDR="$1"
-NAME=$(echo "$ADDR" | jq -r .full_name)
-STREET=$(echo "$ADDR" | jq -r .street)
-CITY=$(echo "$ADDR" | jq -r .city)
-POSTCODE=$(echo "$ADDR" | jq -r .postcode)
-COUNTRY=$(echo "$ADDR" | jq -r .country)
+# Name of business or individual, possibly with "Attn. $INDIVIDUAL_NAME"
+CONTACT_NAME=$(echo "$ADDR" | jq -r .contact_name)
+# Multi-line address
+ADDRESS_LINES=$(echo "$ADDR" | jq -r .address_lines)
+# This will just be the 2-letter country code
+ADDRESS_COUNTRY=$(echo "$ADDR" | jq -r .address_country)
+
+case "$ADDRESS_COUNTRY"
+in
+ AF)
+ COUNTRY='Afghanistan'
+ ;;
+ AX)
+ COUNTRY='Åland Islands'
+ ;;
+ AL)
+ COUNTRY='Albania'
+ ;;
+ DZ)
+ COUNTRY='Algeria'
+ ;;
+ AS)
+ COUNTRY='American Samoa'
+ ;;
+ AD)
+ COUNTRY='Andorra'
+ ;;
+ AO)
+ COUNTRY='Angola'
+ ;;
+ AI)
+ COUNTRY='Anguilla'
+ ;;
+ AQ)
+ COUNTRY='Antarctica'
+ ;;
+ AG)
+ COUNTRY='Antigua & Barbuda'
+ ;;
+ AR)
+ COUNTRY='Argentina'
+ ;;
+ AM)
+ COUNTRY='Armenia'
+ ;;
+ AW)
+ COUNTRY='Aruba'
+ ;;
+ AU)
+ COUNTRY='Australia'
+ ;;
+ AT)
+ COUNTRY='Austria'
+ ;;
+ AZ)
+ COUNTRY='Azerbaijan'
+ ;;
+ BS)
+ COUNTRY='Bahamas'
+ ;;
+ BH)
+ COUNTRY='Bahrain'
+ ;;
+ BD)
+ COUNTRY='Bangladesh'
+ ;;
+ BB)
+ COUNTRY='Barbados'
+ ;;
+ BY)
+ COUNTRY='Belarus'
+ ;;
+ BE)
+ COUNTRY='Belgium'
+ ;;
+ BZ)
+ COUNTRY='Belize'
+ ;;
+ BJ)
+ COUNTRY='Benin'
+ ;;
+ BM)
+ COUNTRY='Bermuda'
+ ;;
+ BT)
+ COUNTRY='Bhutan'
+ ;;
+ BO)
+ COUNTRY='Bolivia'
+ ;;
+ BA)
+ COUNTRY='Bosnia & Herzegovina'
+ ;;
+ BW)
+ COUNTRY='Botswana'
+ ;;
+ BV)
+ COUNTRY='Bouvet Island'
+ ;;
+ BR)
+ COUNTRY='Brazil'
+ ;;
+ IO)
+ COUNTRY='British Indian Ocean Territory'
+ ;;
+ VG)
+ COUNTRY='British Virgin Islands'
+ ;;
+ BN)
+ COUNTRY='Brunei'
+ ;;
+ BG)
+ COUNTRY='Bulgaria'
+ ;;
+ BF)
+ COUNTRY='Burkina Faso'
+ ;;
+ BI)
+ COUNTRY='Burundi'
+ ;;
+ KH)
+ COUNTRY='Cambodia'
+ ;;
+ CM)
+ COUNTRY='Cameroon'
+ ;;
+ CA)
+ COUNTRY='Canada'
+ ;;
+ CV)
+ COUNTRY='Cape Verde'
+ ;;
+ BQ)
+ COUNTRY='Caribbean Netherlands'
+ ;;
+ KY)
+ COUNTRY='Cayman Islands'
+ ;;
+ CF)
+ COUNTRY='Central African Republic'
+ ;;
+ TD)
+ COUNTRY='Chad'
+ ;;
+ CL)
+ COUNTRY='Chile'
+ ;;
+ CN)
+ COUNTRY='China'
+ ;;
+ CX)
+ COUNTRY='Christmas Island'
+ ;;
+ CC)
+ COUNTRY='Cocos'
+ ;;
+ CO)
+ COUNTRY='Colombia'
+ ;;
+ KM)
+ COUNTRY='Comoros'
+ ;;
+ CG)
+ COUNTRY='Congo - Brazzaville'
+ ;;
+ CD)
+ COUNTRY='Congo - Kinshasa'
+ ;;
+ CK)
+ COUNTRY='Cook Islands'
+ ;;
+ CR)
+ COUNTRY='Costa Rica'
+ ;;
+ CI)
+ COUNTRY='Côte d’Ivoire'
+ ;;
+ HR)
+ COUNTRY='Croatia'
+ ;;
+ CU)
+ COUNTRY='Cuba'
+ ;;
+ CW)
+ COUNTRY='Curaçao'
+ ;;
+ CY)
+ COUNTRY='Cyprus'
+ ;;
+ CZ)
+ COUNTRY='Czechia'
+ ;;
+ DK)
+ COUNTRY='Denmark'
+ ;;
+ DJ)
+ COUNTRY='Djibouti'
+ ;;
+ DM)
+ COUNTRY='Dominica'
+ ;;
+ DO)
+ COUNTRY='Dominican Republic'
+ ;;
+ EC)
+ COUNTRY='Ecuador'
+ ;;
+ EG)
+ COUNTRY='Egypt'
+ ;;
+ SV)
+ COUNTRY='El Salvador'
+ ;;
+ GQ)
+ COUNTRY='Equatorial Guinea'
+ ;;
+ ER)
+ COUNTRY='Eritrea'
+ ;;
+ EE)
+ COUNTRY='Estonia'
+ ;;
+ SZ)
+ COUNTRY='Eswatini'
+ ;;
+ ET)
+ COUNTRY='Ethiopia'
+ ;;
+ FK)
+ COUNTRY='Falkland Islands'
+ ;;
+ FO)
+ COUNTRY='Faroe Islands'
+ ;;
+ FJ)
+ COUNTRY='Fiji'
+ ;;
+ FI)
+ COUNTRY='Finland'
+ ;;
+ FR)
+ COUNTRY='France'
+ ;;
+ GF)
+ COUNTRY='French Guiana'
+ ;;
+ PF)
+ COUNTRY='French Polynesia'
+ ;;
+ TF)
+ COUNTRY='French Southern Territories'
+ ;;
+ GA)
+ COUNTRY='Gabon'
+ ;;
+ GM)
+ COUNTRY='Gambia'
+ ;;
+ GE)
+ COUNTRY='Georgia'
+ ;;
+ DE)
+ COUNTRY='Germany'
+ ;;
+ GH)
+ COUNTRY='Ghana'
+ ;;
+ GI)
+ COUNTRY='Gibraltar'
+ ;;
+ GR)
+ COUNTRY='Greece'
+ ;;
+ GL)
+ COUNTRY='Greenland'
+ ;;
+ GD)
+ COUNTRY='Grenada'
+ ;;
+ GP)
+ COUNTRY='Guadeloupe'
+ ;;
+ GU)
+ COUNTRY='Guam'
+ ;;
+ GT)
+ COUNTRY='Guatemala'
+ ;;
+ GG)
+ COUNTRY='Guernsey'
+ ;;
+ GN)
+ COUNTRY='Guinea'
+ ;;
+ GW)
+ COUNTRY='Guinea-Bissau'
+ ;;
+ GY)
+ COUNTRY='Guyana'
+ ;;
+ HT)
+ COUNTRY='Haiti'
+ ;;
+ HM)
+ COUNTRY='Heard & McDonald Islands'
+ ;;
+ HN)
+ COUNTRY='Honduras'
+ ;;
+ HK)
+ COUNTRY='Hong Kong SAR China'
+ ;;
+ HU)
+ COUNTRY='Hungary'
+ ;;
+ IS)
+ COUNTRY='Iceland'
+ ;;
+ IN)
+ COUNTRY='India'
+ ;;
+ ID)
+ COUNTRY='Indonesia'
+ ;;
+ IR)
+ COUNTRY='Iran'
+ ;;
+ IQ)
+ COUNTRY='Iraq'
+ ;;
+ IE)
+ COUNTRY='Ireland'
+ ;;
+ IM)
+ COUNTRY='Isle of Man'
+ ;;
+ IL)
+ COUNTRY='Israel'
+ ;;
+ IT)
+ COUNTRY='Italy'
+ ;;
+ JM)
+ COUNTRY='Jamaica'
+ ;;
+ JP)
+ COUNTRY='Japan'
+ ;;
+ JE)
+ COUNTRY='Jersey'
+ ;;
+ JO)
+ COUNTRY='Jordan'
+ ;;
+ KZ)
+ COUNTRY='Kazakhstan'
+ ;;
+ KE)
+ COUNTRY='Kenya'
+ ;;
+ KI)
+ COUNTRY='Kiribati'
+ ;;
+ KW)
+ COUNTRY='Kuwait'
+ ;;
+ KG)
+ COUNTRY='Kyrgyzstan'
+ ;;
+ LA)
+ COUNTRY='Laos'
+ ;;
+ LV)
+ COUNTRY='Latvia'
+ ;;
+ LB)
+ COUNTRY='Lebanon'
+ ;;
+ LS)
+ COUNTRY='Lesotho'
+ ;;
+ LR)
+ COUNTRY='Liberia'
+ ;;
+ LY)
+ COUNTRY='Libya'
+ ;;
+ LI)
+ COUNTRY='Liechtenstein'
+ ;;
+ LT)
+ COUNTRY='Lithuania'
+ ;;
+ LU)
+ COUNTRY='Luxembourg'
+ ;;
+ MO)
+ COUNTRY='Macao SAR China'
+ ;;
+ MG)
+ COUNTRY='Madagascar'
+ ;;
+ MW)
+ COUNTRY='Malawi'
+ ;;
+ MY)
+ COUNTRY='Malaysia'
+ ;;
+ MV)
+ COUNTRY='Maldives'
+ ;;
+ ML)
+ COUNTRY='Mali'
+ ;;
+ MT)
+ COUNTRY='Malta'
+ ;;
+ MH)
+ COUNTRY='Marshall Islands'
+ ;;
+ MQ)
+ COUNTRY='Martinique'
+ ;;
+ MR)
+ COUNTRY='Mauritania'
+ ;;
+ MU)
+ COUNTRY='Mauritius'
+ ;;
+ YT)
+ COUNTRY='Mayotte'
+ ;;
+ MX)
+ COUNTRY='Mexico'
+ ;;
+ FM)
+ COUNTRY='Micronesia'
+ ;;
+ MD)
+ COUNTRY='Moldova'
+ ;;
+ MC)
+ COUNTRY='Monaco'
+ ;;
+ MN)
+ COUNTRY='Mongolia'
+ ;;
+ ME)
+ COUNTRY='Montenegro'
+ ;;
+ MS)
+ COUNTRY='Montserrat'
+ ;;
+ MA)
+ COUNTRY='Morocco'
+ ;;
+ MZ)
+ COUNTRY='Mozambique'
+ ;;
+ MM)
+ COUNTRY='Myanmar'
+ ;;
+ NA)
+ COUNTRY='Namibia'
+ ;;
+ NR)
+ COUNTRY='Nauru'
+ ;;
+ NP)
+ COUNTRY='Nepal'
+ ;;
+ NL)
+ COUNTRY='Netherlands'
+ ;;
+ NC)
+ COUNTRY='New Caledonia'
+ ;;
+ NZ)
+ COUNTRY='New Zealand'
+ ;;
+ NI)
+ COUNTRY='Nicaragua'
+ ;;
+ NE)
+ COUNTRY='Niger'
+ ;;
+ NG)
+ COUNTRY='Nigeria'
+ ;;
+ NU)
+ COUNTRY='Niue'
+ ;;
+ NF)
+ COUNTRY='Norfolk Island'
+ ;;
+ KP)
+ COUNTRY='North Korea'
+ ;;
+ MK)
+ COUNTRY='North Macedonia'
+ ;;
+ MP)
+ COUNTRY='Northern Mariana Islands'
+ ;;
+ NO)
+ COUNTRY='Norway'
+ ;;
+ OM)
+ COUNTRY='Oman'
+ ;;
+ PK)
+ COUNTRY='Pakistan'
+ ;;
+ PW)
+ COUNTRY='Palau'
+ ;;
+ PS)
+ COUNTRY='Palestinian Territories'
+ ;;
+ PA)
+ COUNTRY='Panama'
+ ;;
+ PG)
+ COUNTRY='Papua New Guinea'
+ ;;
+ PY)
+ COUNTRY='Paraguay'
+ ;;
+ PE)
+ COUNTRY='Peru'
+ ;;
+ PH)
+ COUNTRY='Philippines'
+ ;;
+ PN)
+ COUNTRY='Pitcairn Islands'
+ ;;
+ PL)
+ COUNTRY='Poland'
+ ;;
+ PT)
+ COUNTRY='Portugal'
+ ;;
+ PR)
+ COUNTRY='Puerto Rico'
+ ;;
+ QA)
+ COUNTRY='Qatar'
+ ;;
+ RE)
+ COUNTRY='Réunion'
+ ;;
+ RO)
+ COUNTRY='Romania'
+ ;;
+ RU)
+ COUNTRY='Russia'
+ ;;
+ RW)
+ COUNTRY='Rwanda'
+ ;;
+ WS)
+ COUNTRY='Samoa'
+ ;;
+ SM)
+ COUNTRY='San Marino'
+ ;;
+ ST)
+ COUNTRY='São Tomé & Príncipe'
+ ;;
+ SA)
+ COUNTRY='Saudi Arabia'
+ ;;
+ SN)
+ COUNTRY='Senegal'
+ ;;
+ RS)
+ COUNTRY='Serbia'
+ ;;
+ SC)
+ COUNTRY='Seychelles'
+ ;;
+ SL)
+ COUNTRY='Sierra Leone'
+ ;;
+ SG)
+ COUNTRY='Singapore'
+ ;;
+ SX)
+ COUNTRY='Sint Maarten'
+ ;;
+ SK)
+ COUNTRY='Slovakia'
+ ;;
+ SI)
+ COUNTRY='Slovenia'
+ ;;
+ SB)
+ COUNTRY='Solomon Islands'
+ ;;
+ SO)
+ COUNTRY='Somalia'
+ ;;
+ ZA)
+ COUNTRY='South Africa'
+ ;;
+ GS)
+ COUNTRY='South Georgia & South Sandwich Islands'
+ ;;
+ KR)
+ COUNTRY='South Korea'
+ ;;
+ SS)
+ COUNTRY='South Sudan'
+ ;;
+ ES)
+ COUNTRY='Spain'
+ ;;
+ LK)
+ COUNTRY='Sri Lanka'
+ ;;
+ BL)
+ COUNTRY='St. Barthélemy'
+ ;;
+ SH)
+ COUNTRY='St. Helena'
+ ;;
+ KN)
+ COUNTRY='St. Kitts & Nevis'
+ ;;
+ LC)
+ COUNTRY='St. Lucia'
+ ;;
+ MF)
+ COUNTRY='St. Martin'
+ ;;
+ PM)
+ COUNTRY='St. Pierre & Miquelon'
+ ;;
+ VC)
+ COUNTRY='St. Vincent & Grenadines'
+ ;;
+ SD)
+ COUNTRY='Sudan'
+ ;;
+ SR)
+ COUNTRY='Suriname'
+ ;;
+ SJ)
+ COUNTRY='Svalbard & Jan Mayen'
+ ;;
+ SE)
+ COUNTRY='Sweden'
+ ;;
+ CH)
+ COUNTRY='Switzerland'
+ ;;
+ SY)
+ COUNTRY='Syria'
+ ;;
+ TW)
+ COUNTRY='Taiwan'
+ ;;
+ TJ)
+ COUNTRY='Tajikistan'
+ ;;
+ TZ)
+ COUNTRY='Tanzania'
+ ;;
+ TH)
+ COUNTRY='Thailand'
+ ;;
+ TL)
+ COUNTRY='Timor-Leste'
+ ;;
+ TG)
+ COUNTRY='Togo'
+ ;;
+ TK)
+ COUNTRY='Tokelau'
+ ;;
+ TO)
+ COUNTRY='Tonga'
+ ;;
+ TT)
+ COUNTRY='Trinidad & Tobago'
+ ;;
+ TN)
+ COUNTRY='Tunisia'
+ ;;
+ TR)
+ COUNTRY='Turkey'
+ ;;
+ TM)
+ COUNTRY='Turkmenistan'
+ ;;
+ TC)
+ COUNTRY='Turks & Caicos Islands'
+ ;;
+ TV)
+ COUNTRY='Tuvalu'
+ ;;
+ UM)
+ COUNTRY='U.S. Outlying Islands'
+ ;;
+ VI)
+ COUNTRY='U.S. Virgin Islands'
+ ;;
+ UG)
+ COUNTRY='Uganda'
+ ;;
+ UA)
+ COUNTRY='Ukraine'
+ ;;
+ AE)
+ COUNTRY='United Arab Emirates'
+ ;;
+ GB)
+ COUNTRY='United Kingdom'
+ ;;
+ US)
+ COUNTRY='United States'
+ ;;
+ UY)
+ COUNTRY='Uruguay'
+ ;;
+ UZ)
+ COUNTRY='Uzbekistan'
+ ;;
+ VU)
+ COUNTRY='Vanuatu'
+ ;;
+ VA)
+ COUNTRY='Vatican City'
+ ;;
+ VE)
+ COUNTRY='Venezuela'
+ ;;
+ VN)
+ COUNTRY='Vietnam'
+ ;;
+ WF)
+ COUNTRY='Wallis & Futuna'
+ ;;
+ EH)
+ COUNTRY='Western Sahara'
+ ;;
+ YE)
+ COUNTRY='Yemen'
+ ;;
+ ZM)
+ COUNTRY='Zambia'
+ ;;
+ ZW)
+ COUNTRY='Zimbabwe'
+ ;;
+ *)
+ echo "ERROR: Country code '${ADDRESS_COUNTRY}' not recognized" 1>&2
+ COUNTRY="${ADDRESS_COUNTRY}"
+ ;;
+esac
+
+# Convert new lines to "\\" for LaTeX, but without trailing new-line
+# at the end if present:
+ADDRESS_TEX=$(echo -n "${ADDRESS_LINES%$'\n'}" | awk '{printf "%s\\\\\n", $0}')
MYDIR=$(mktemp -d /tmp/authorization-post-XXXXXX)
cd "$MYDIR"
-cat - | sed -e "s/%NAME%/$NAME/g" \
- -e "s/%STREET%/$STREET/g" \
- -e "s/%POSTCODE%/$POSTCODE/g" \
- -e "s/%CITY%/$CITY/g" \
+cat - | sed -e "s/%NAME%/$CONTACT_NAME/g" \
+ -e "s/%ADDRESS%/$ADDRESS_TEX/g" \
-e "s/%COUNTRY%/$COUNTRY/g" > input.tex <<EOF
\NeedsTeXFormat{LaTeX2e}
\documentclass[fontsize=11pt,a4paper]{scrlttr2}
@@ -49,7 +807,7 @@ cat - | sed -e "s/%NAME%/$NAME/g" \
\setkomavar{signature}{Taler Operations AG, c/o Berner Fachhochschule, H\"oheweg 80, 2502 Biel/Bienne}
\date{\today}
\begin{document}
-\begin{letter}{\ \ %NAME% \\\\ \ \ %STREET% \\\\ \ \ %POSTCODE% %CITY% \\\\ \ \ %COUNTRY% }
+\begin{letter}{\ \ %NAME% \\\\ \ \ %ADDRESS_TEX% \\\\ \ \ %COUNTRY% }
\opening{To whom it may concern,}
EOF
echo "$MESSAGE" >> input.tex