kyopages/scripts/tests/diag_getFirefox

211 lines
8.3 KiB
Plaintext
Raw Normal View History

2017-07-19 17:01:01 +02:00
#!/bin/bash
2018-01-19 16:47:16 +01:00
version=16/01/2018
2017-07-24 11:29:16 +02:00
2017-09-07 09:46:49 +02:00
# si $1=all affichage complet
2017-12-05 15:20:59 +01:00
f__affichage(){ # 5/12/2017
2017-08-20 03:12:13 +02:00
# définition couleurs
YELLOW="$(printf "\033[0;33m")" # ?
GREEN="$(printf "\033[0;32m")" # ok
BLUE="$(printf "\033[0;34m")" # info
RED="$(printf "\033[0;31m")" # alerte
COLOR="$(printf "\033[0m")" # standard
2017-12-05 15:20:59 +01:00
STD="$(printf "\033[0m")" # standard
2017-08-20 03:12:13 +02:00
[ "$1" == all ] || return
2017-08-30 22:43:58 +02:00
clear
2017-08-20 03:12:13 +02:00
printf "$YELLOW"
2017-09-07 09:46:49 +02:00
[ "$(which figlet)" ] && figlet -w120 "$(basename $0)" || echo -e "\t\t\t$(basename $0)"
2017-08-20 03:12:13 +02:00
echo -e "$GREEN\t\t\tversion $version$COLOR\n"
}
2017-12-05 15:20:59 +01:00
f_help(){ # 07/09/2017
2017-08-20 03:12:13 +02:00
f__affichage all
printf $BLUE
2017-08-19 10:54:58 +02:00
cat << 'EOF'
----------------------------------------------------------------------
2017-08-30 22:43:58 +02:00
=== versions Firefox ===
2017-09-09 20:11:26 +02:00
latest: x.y.z esr: x.y.z beta/dev: x.y.z nightly : x.y.z
2017-08-30 22:43:58 +02:00
pour chaque architecture linux ou linux64 (32 ou 64 bits):
==========================================================
canal: url récup canal HTTP/1.1 302 Found HTTP/1.1 200 OK
2017-08-28 10:07:43 +02:00
Location: url réelle de l'archive du canal si redirection
2017-08-19 10:54:58 +02:00
2017-08-30 22:43:58 +02:00
=== Tor Browser ===
Tor Browser: x.y.z
url récup Tor Browser HTTP/1.1 302 Found HTTP/1.1 200 OK
Location: url réelle de l'archive Tor Browser si redirection
--------
HTTP: 302: redirection temporaire (normal) 200: archive trouvée, téléchargeable
une erreur 404 indiquerait une nouvelle url à déterminer
une erreur 5xx indiquerait une erreur au niveau du serveur, réessayer +tard
une erreur 4xx.. humm, réessayer +tard?
x.y.z la version est bien détectée
NA la version n'est pas accessible, revoir cette fonction
2017-08-20 03:12:13 +02:00
----------------------------------------------------------------------
liens de téléchargement manuels:
latest & esr : https://www.mozilla.org/en-US/firefox/notes/
2017-08-30 09:38:25 +02:00
beta / dev / nightly : https://www.mozilla.org/fr/firefox/channel/desktop/
Tor Browser : https://www.torproject.org/projects/torbrowser.html.en
2017-08-19 10:54:58 +02:00
EOF
2017-09-07 09:46:49 +02:00
printf $COLOR
2017-08-19 10:54:58 +02:00
exit
}
2018-01-19 16:47:16 +01:00
f__error(){ # 16/01/2018 divert
:
}
# test wget, $1=url à tester, $2=''|print|loc|test
# par défaut, sortie du script (même si url testée ok) avec affichage erreur ou ok
2017-12-05 15:20:59 +01:00
# si $2=print affiche url testée & entêtes http & location, return 0
# si $2=loc affiche seulement location, return 0
# si $2=test return 0 si ok, return 1 si KO
2018-01-19 16:47:16 +01:00
f__wget_test(){ # 16/01/2018
local file_test_wget="/tmp/testWget-$script" retourWget retourHttp location
2017-12-05 15:20:59 +01:00
2017-12-11 22:51:04 +01:00
wget -Sq --timeout=5 --tries=2 --user-agent="$user_agent" --spider --save-headers "$1" &>"$file_test_wget"
2017-12-05 15:20:59 +01:00
retourWget="$?"
[ "$retourWget" == 1 ] && retourWget="1: code erreur générique"
[ "$retourWget" == 2 ] && retourWget="2: parse erreur (ligne de commande?)"
[ "$retourWget" == 3 ] && retourWget="3: erreur Entrée/sortie fichier"
[ "$retourWget" == 4 ] && retourWget="4: défaut réseau"
[ "$retourWget" == 5 ] && retourWget="5: défaut vérification SSL"
[ "$retourWget" == 6 ] && retourWget="6: défaut authentification"
[ "$retourWget" == 7 ] && retourWget="7: erreur de protocole"
[ "$retourWget" == 8 ] && retourWget="8: réponse serveur en erreur"
2017-12-11 22:51:04 +01:00
retourHttp=$( grep -i 'HTTP/' "$file_test_wget" | tr -d '\n' | xargs )
location=$( grep -i 'location' $file_test_wget | xargs )
2017-12-05 15:20:59 +01:00
if [ "$2" == "test" ]; then
2018-01-19 16:47:16 +01:00
rm -f "$file_test_wget"
2017-12-05 15:20:59 +01:00
# spécial maintenance frama.link, pas de redirection sur page status framalink
2018-01-19 16:47:16 +01:00
grep -q '303' <<< $retourHttp && return 1 # 303 See Other
2017-12-05 15:20:59 +01:00
[ "$retourWget" == "0" ] && return 0 || return 1
2017-09-07 09:46:49 +02:00
fi
2017-12-05 15:20:59 +01:00
if [ "$2" == "print" ]; then
if [ "$retourWget" != "0" ]; then
2018-01-19 16:47:16 +01:00
echo " erreur wget: erreur $RED$retourWget"
echo -e "$BLUE $1$STD\t$RED $retourHttp$STD"
2017-12-05 15:20:59 +01:00
else
2018-01-19 16:47:16 +01:00
echo -e "$BLUE $1$STD\t$GREEN $retourHttp$STD"
2017-09-07 09:46:49 +02:00
fi
2017-12-05 15:20:59 +01:00
fi
if [ "$2" == "print" ] || [ "$2" == "loc" ]; then
[ "$location" ] && echo -n "$YELLOW $location" || echo -n "$YELLOW no location"
echo "$STD"
2018-01-19 16:47:16 +01:00
rm -f "$file_test_wget"
2017-12-05 15:20:59 +01:00
return 0
fi
if [ "$retourWget" != "0" ]; then
2018-01-19 16:47:16 +01:00
rm -f "$file_test_wget"
f__error "wget, erreur $retourWget" "$1" "$YELLOW$retourHttp" "$location"
2017-12-11 22:51:04 +01:00
echo -e "$RED erreur wget, $retourWget \n $1 \n $YELLOW$retourHttp \n $location$STD" # pour les diags
return 1
2017-12-05 15:20:59 +01:00
fi
2018-01-19 16:47:16 +01:00
if grep -q '200' <<< $retourHttp; then
2017-12-05 15:20:59 +01:00
echo -e "$GREEN\ntout est ok, réessayer$STD\n"
fi
2018-01-19 16:47:16 +01:00
rm -f "$file_test_wget"
2017-12-05 15:20:59 +01:00
exit 0
2017-08-30 09:38:25 +02:00
}
2017-07-20 04:45:19 +02:00
2017-08-30 09:38:25 +02:00
# assigne $verLatest, $verEsr, $verBeta, $verNightly
2017-12-05 15:20:59 +01:00
test_version_firefox(){ # 07/09/2017
2017-08-30 22:43:58 +02:00
echo -e "\n === versions Firefox ==="
2017-08-30 09:38:25 +02:00
local recup_url
recup_url="https://www.mozilla.org/en-US/firefox/notes/"
wget -q --tries=1 --timeout=10 --user-agent="$user_agent" -O - "$recup_url" &>"$file_tempo_test"
verLatest="$(grep -Eo 'data-latest-firefox="[0-9\.]+"' $file_tempo_test | grep -Eo '[0-9\.]+')"
verEsr="$(grep -Eo 'data-esr-versions="[0-9\.]+"' $file_tempo_test | grep -Eo '[0-9\.]+')"
recup_url="https://download.mozilla.org/?product=firefox-beta-latest&os=linux64&lang=fr"
wget -Sq --tries=1 --timeout=10 --user-agent="$user_agent" --spider --save-headers "$recup_url" &>"$file_tempo_test"
verBeta="$(grep -i 'location' $file_tempo_test | sed -E 's/.*firefox-(.*)\.tar.bz2/\1/')"
recup_url="https://download.mozilla.org/?product=firefox-nightly-latest-l10n-ssl&os=linux64&lang=fr"
wget -Sq --tries=1 --timeout=10 --user-agent="$user_agent" --spider --save-headers "$recup_url" &>"$file_tempo_test"
verNightly="$(grep -i 'location' $file_tempo_test | sed -E 's/.*firefox-(.*)\.fr.linux.*/\1/')"
2017-08-30 22:43:58 +02:00
[ "$verLatest" ] || verLatest="$RED""NA"
[ "$verEsr" ] || verEsr="$RED""NA"
[ "$verBeta" ] || verBeta="$RED""NA"
[ "$verNightly" ] || verNightly="$RED""NA"
2017-12-05 15:20:59 +01:00
echo -e " latest: $GREEN$verLatest$COLOR esr: $GREEN$verEsr$COLOR beta: $GREEN$verBeta$COLOR nightly : $GREEN$verNightly$COLOR"
}
test_url_dl_firefox(){ # 5/12/2017
for fu_archi in linux linux64; do
echo " Architecture: $fu_archi"
echo " ====================="
local recup_url
for produit in latest esr beta dev nightly; do
if [ "$produit" == "latest" ]; then
recup_url="https://download.mozilla.org/?product=firefox-$produit&os=$fu_archi&lang=fr"
elif [ "$produit" == "esr" ] || [ "$produit" == "beta" ]; then
recup_url="https://download.mozilla.org/?product=firefox-$produit-latest&os=$fu_archi&lang=fr"
elif [ "$produit" == "dev" ]; then
recup_url="https://download.mozilla.org/?product=firefox-$produit""edition-latest-ssl&os=$fu_archi&lang=fr"
elif [ "$produit" == "nightly" ]; then
recup_url="https://download.mozilla.org/?product=firefox-$produit-latest-l10n-ssl&os=$fu_archi&lang=fr"
fi
printf " $produit:"
f__wget_test "$recup_url" print
done
done
2017-08-30 09:38:25 +02:00
}
2017-07-24 11:29:16 +02:00
2017-08-30 09:38:25 +02:00
# assigne $verTor
test_version_torBrowser(){
2017-08-30 22:43:58 +02:00
echo -e "\n === Tor Browser ==="
2017-08-30 09:38:25 +02:00
local recup_url="https://www.torproject.org/projects/torbrowser.html.en"
wget -q --tries=2 --timeout=15 --user-agent="$user_agent" -O - "$recup_url" &>"$file_tempo_test"
verTor="$(sed -En 's/^.*torbrowser\/([0-9.]*)\/.*_fr\.tar\.xz.*$/\1/p' $file_tempo_test | sed -n '1p')"
2017-08-30 22:43:58 +02:00
[ "$verTor" ] || verTor="$RED""NA"
echo -e " Tor Browser: $GREEN$verTor$COLOR"
2017-08-30 09:38:25 +02:00
}
#$1 version
2017-12-05 15:20:59 +01:00
test_url_dl_torBrowser(){ # 5/12/2017
2017-08-30 09:38:25 +02:00
#https://www.torproject.org/dist/torbrowser/7.0.4/tor-browser-linux64-7.0.4_fr.tar.xz
#https://www.torproject.org/dist/torbrowser/7.0.4/tor-browser-linux64-7.0.4_fr.tar.xz.asc
local recup_url
2017-12-05 15:20:59 +01:00
[ "$fu_archi" == "linux" ] && local archi="linux32" || local archi="$architecture"
2017-08-30 09:38:25 +02:00
for archi in linux32 linux64; do
recup_url="https://www.torproject.org/dist/torbrowser/$1/tor-browser-$archi-$1_fr.tar.xz"
2017-12-05 15:20:59 +01:00
f__wget_test "$recup_url" print
2017-08-30 09:38:25 +02:00
done
}
# start
user_agent="Mozilla/5.0 Firefox"
2017-12-05 15:20:59 +01:00
file_tempo_test="/tmp/tempoDiagFx-$RANDOM-$RANDOM"
2017-08-30 09:38:25 +02:00
f__affichage
[ "$1" == "-h" ] && f_help
2017-07-20 04:45:19 +02:00
2017-08-30 09:38:25 +02:00
test_version_firefox
2017-08-30 22:43:58 +02:00
test_url_dl_firefox
2017-08-30 09:38:25 +02:00
test_version_torBrowser
2017-08-30 22:43:58 +02:00
test_url_dl_torBrowser "$verTor"
echo
2017-07-19 17:01:01 +02:00
2017-07-24 11:29:16 +02:00
rm $file_tempo_test
2017-07-20 01:38:07 +02:00
exit
2017-07-19 17:01:01 +02:00
2017-08-20 03:12:13 +02:00
autres liens
latest: https://www.mozilla.org/fr/firefox/new/
esr: https://www.mozilla.org/en-US/firefox/organizations/
------
2017-07-19 17:01:01 +02:00
https://download-installer.cdn.mozilla.net/pub/firefox/releases/latest/README.txt
https://download-installer.cdn.mozilla.net/pub/firefox/releases/latest-beta/README.txt
2017-08-20 03:12:13 +02:00
2017-07-19 17:01:01 +02:00
https://download.mozilla.org/?product=firefox-nightly-latest-l10n-ssl&os=linux&lang=fr
https://download-installer.cdn.mozilla.net/pub/firefox/releases/latest-esr/README.txt
2017-08-20 03:12:13 +02:00
------
2017-07-19 17:01:01 +02:00
périmé
https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-aurora-l10n/ 404
2017-08-28 10:07:43 +02:00
https://download.mozilla.org/?product=firefox-aurora-latest-l10n-ssl&os=linux&lang=fr 404 dev edition