Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(news): Make curl fail on http server errors responses when checking for recent news #220

Merged
merged 2 commits into from
Jul 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions po/arch-update.pot
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ msgstr ""
#: src/script/arch-update.sh:362
#, sh-format
msgid ""
"Unable to retrieve recent Arch News within a reasonable time (request "
"Unable to retrieve recent Arch News (HTTP error response or request "
"timeout)\\nPlease, look for any recent news at https://archlinux.org before "
"updating your system"
msgstr ""
Expand Down Expand Up @@ -278,9 +278,9 @@ msgstr ""
#: src/script/arch-update.sh:425
#, sh-format
msgid ""
"Unable to retrieve the selected Arch News within a reasonable time (possibly "
"because of a slow or faulty network connection)\\nPlease, read the selected "
"Arch News at ${news_url} before updating your system"
"Unable to retrieve the selected Arch News (HTTP error response or request "
"timeout)\\nPlease, read the selected Arch News at ${news_url} before "
"updating your system"
msgstr ""

#: src/script/arch-update.sh:430
Expand Down
14 changes: 7 additions & 7 deletions po/fr.po
Original file line number Diff line number Diff line change
Expand Up @@ -269,11 +269,11 @@ msgstr "Recherche des Arch News récentes..."
#: src/script/arch-update.sh:362
#, sh-format
msgid ""
"Unable to retrieve recent Arch News within a reasonable time (request "
"Unable to retrieve recent Arch News (HTTP error response or request "
"timeout)\\nPlease, look for any recent news at https://archlinux.org before "
"updating your system"
msgstr ""
"Impossible de récupérer les Arch News récentes dans un délai raisonnable (délai "
"Impossible de récupérer les Arch News récentes (réponse HTTP en erreur ou délai "
"d'attente de la demande dépassé)\\nVeuillez consultez les dernières "
"news à l'adresse suivante avant de mettre à jour votre système : https://archlinux.org"

Expand Down Expand Up @@ -313,12 +313,12 @@ msgstr ""
#: src/script/arch-update.sh:425
#, sh-format
msgid ""
"Unable to retrieve the selected Arch News within a reasonable time (possibly "
"because of a slow or faulty network connection)\\nPlease, read the selected "
"Arch News at ${news_url} before updating your system"
"Unable to retrieve the selected Arch News (HTTP error response or request "
"timeout)\\nPlease, read the selected Arch News at ${news_url} before "
"updating your system"
msgstr ""
"Impossible de récupérer la news sélectionnée dans un délai raisonnable (possiblement "
"à cause d'une connexion réseau lente ou défectueuse)\\nVeuillez consultez la news sélectionnée "
"Impossible de récupérer la news sélectionnée (réponse HTTP en erreur ou délai d'attente "
"de la demande dépassé)\\nVeuillez consultez la news sélectionnée "
"à l'adresse suivante avant de mettre à jour votre système : ${news_url}"

#: src/script/arch-update.sh:430
Expand Down
8 changes: 4 additions & 4 deletions src/script/arch-update.sh
Original file line number Diff line number Diff line change
Expand Up @@ -355,11 +355,11 @@ list_packages() {
# Definition of the list_news function: Display the latest Arch news and offers to read them
list_news() {
info_msg "$(eval_gettext "Looking for recent Arch News...")"
news=$(curl -m 30 -Ls https://www.archlinux.org/news || echo "timeout")
news=$(curl -m 30 -Lfs https://www.archlinux.org/news || echo "timeout")

if [ "${news}" == "timeout" ]; then
echo
warning_msg "$(eval_gettext "Unable to retrieve recent Arch News within a reasonable time (request timeout)\nPlease, look for any recent news at https://archlinux.org before updating your system")"
warning_msg "$(eval_gettext "Unable to retrieve recent Arch News (HTTP error response or request timeout)\nPlease, look for any recent news at https://archlinux.org before updating your system")"
else
if [ -z "${show_news}" ]; then
echo "${news}" | htmlq -a title a | grep ^"View:" | sed "s/View:\ //g" | head -1 > "${statedir}/current_news_check"
Expand Down Expand Up @@ -418,11 +418,11 @@ list_news() {
news_selected=$(sed -n "${num}"p <<< "${news_titles}")
news_path=$(echo "${news_selected}" | sed s/\ -//g | sed s/\ /-/g | sed s/[.]//g | sed s/=//g | sed s/\>//g | sed s/\<//g | sed s/\`//g | sed s/://g | sed s/+//g | sed s/[[]//g | sed s/]//g | sed s/,//g | sed s/\(//g | sed s/\)//g | sed s/[/]//g | sed s/@//g | sed s/\'//g | sed s/--/-/g | awk '{print tolower($0)}')
news_url="https://www.archlinux.org/news/${news_path}"
news_content=$(curl -m 30 -Ls "${news_url}" || echo "timeout")
news_content=$(curl -m 30 -Lfs "${news_url}" || echo "timeout")

if [ "${news_content}" == "timeout" ]; then
echo
warning_msg "$(eval_gettext "Unable to retrieve the selected Arch News within a reasonable time (possibly because of a slow or faulty network connection)\nPlease, read the selected Arch News at \${news_url} before updating your system")"
warning_msg "$(eval_gettext "Unable to retrieve the selected Arch News (HTTP error response or request timeout)\nPlease, read the selected Arch News at \${news_url} before updating your system")"
else
news_author=$(echo "${news_content}" | htmlq -t .article-info | cut -f3- -d " ")
news_date=$(echo "${news_content}" | htmlq -t .article-info | cut -f1 -d " ")
Expand Down