42 lines
1.5 KiB
Bash
42 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
# AI generated
|
|
urlencode() {
|
|
local LANG=C i x
|
|
for (( i = 0; i < ${#1}; i++ )); do
|
|
x="${1:i:1}"
|
|
[[ "$x" =~ [a-zA-Z0-9.~_-] ]] && echo -n "$x" || printf '%%%02X' "'$x"
|
|
done
|
|
echo
|
|
}
|
|
|
|
if [[ ! -z ${CURL_CONFIG_IDS} ]]; then
|
|
mkdir -p ${CURL_CONFIG_DIR:-/opt/etc/curl}
|
|
|
|
for CURL_CONFIG_PAIR in ${CURL_CONFIG_IDS}; do
|
|
if [[ ${CURL_CONFIG_PAIR} =~ ^([^:]+):(.+)$ ]]; then
|
|
CURL_CONFIG_ID=${BASH_REMATCH[1]}
|
|
CURL_CONFIG_ENVVAR_KEY=${BASH_REMATCH[2]}
|
|
CURL_CONFIG_ENVVAR_USERNAME="CURL_CONFIG_${CURL_CONFIG_ENVVAR_KEY}_USERNAME"
|
|
CURL_CONFIG_ENVVAR_PASSWORD="CURL_CONFIG_${CURL_CONFIG_ENVVAR_KEY}_PASSWORD"
|
|
|
|
CURL_CONFIG_USERNAME=`urlencode ${!CURL_CONFIG_ENVVAR_USERNAME}`
|
|
CURL_CONFIG_PASSWORD=`urlencode ${!CURL_CONFIG_ENVVAR_PASSWORD}`
|
|
|
|
if [[ -z ${CURL_CONFIG_USERNAME} ]]; then
|
|
echo "The curl configuration '${CURL_CONFIG_ID}' has no corresponding environment variable: ${CURL_CONFIG_ENVVAR_USERNAME}; ignoring"
|
|
elif [[ -z ${CURL_CONFIG_PASSWORD} ]]; then
|
|
echo "The curl configuration '${CURL_CONFIG_ID}' has no corresponding environment variable: ${CURL_CONFIG_ENVVAR_PASSWORD}; ignoring"
|
|
else
|
|
CURL_CONFIG_FILE=${CURL_CONFIG_DIR:-/opt/etc/curl}/${CURL_CONFIG_ID}.cfg
|
|
echo "user = ${CURL_CONFIG_USERNAME}:${CURL_CONFIG_PASSWORD}" > ${CURL_CONFIG_FILE}
|
|
|
|
echo "Added CURL configuration file: ${CURL_CONFIG_FILE}"
|
|
fi
|
|
else
|
|
echo "The curl configuration format in 'CURL_CONFIG_IDS' is invalid: ${CURL_CONFIG_PAIR}"
|
|
exit 1
|
|
fi
|
|
done
|
|
fi
|