From 96729e414e0835eadcadb78906114b4c3548b0d3 Mon Sep 17 00:00:00 2001 From: Martin Winkler Date: Fri, 13 Mar 2026 06:12:44 +0100 Subject: [PATCH] Support URLs pointing to a zip file --- icscheck/icscheck.conf.dist | 8 +++++--- icscheck/icscheck.sh | 8 ++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/icscheck/icscheck.conf.dist b/icscheck/icscheck.conf.dist index 33a2db0..080c16d 100644 --- a/icscheck/icscheck.conf.dist +++ b/icscheck/icscheck.conf.dist @@ -3,9 +3,11 @@ # Configuration file for icscheck.sh # https://winklerfamilie.eu/git/SmallThings/icsutils.git -local icsconf_url="https://somethi.ng" -local icsconf_output="${HOME}/my.ics" -local icsconf_useragent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/110.0" +readonly icsconf_url="https://somethi.ng" +# Only set icsconf_zip if the url points to a zip file +readonly icsconf_zip="ics_name_inside_zip_$(date +%Y).ics" +readonly icsconf_output="${HOME}/my.ics" +readonly icsconf_useragent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/110.0" # icsError # Called if the download from ${icsconf_url} failed diff --git a/icscheck/icscheck.sh b/icscheck/icscheck.sh index 271770d..09cd0f4 100755 --- a/icscheck/icscheck.sh +++ b/icscheck/icscheck.sh @@ -53,6 +53,8 @@ icscheck() { for arg in "${@}" ; do case "${1:-}" in + --debug|-d) + set -o xtrace && shift ;; --help|-h) icsusage && return 0 ;; --renew|-r) @@ -79,6 +81,11 @@ icscheck() { curl -L "${ics_url}" -H "User-Agent: ${icsconf_useragent:?}" -o "${ics_down_file}" >/dev/null 2>&1 + if [ -n "${icsconf_zip:-}" ]; then + unzip -oqq "${ics_down_file}" "${icsconf_zip}" -d "${ics_temp_dir}" + mv -f "${ics_temp_dir}/${icsconf_zip}" "${ics_down_file}" + fi + # -s : exists and size greater zero if [ ! -s "$ics_down_file" ] || [ ! -r "$ics_down_file" ]; then icsError @@ -105,3 +112,4 @@ icscheck() { } icscheck "${@}" +