mirror of https://framagit.org/kyodev/kyopages.git
1.5.0
This commit is contained in:
parent
2100e86bb1
commit
b9c61bade4
|
@ -1,6 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
version=1.4.0
|
||||
version=1.5.0
|
||||
date="30/08/2017"
|
||||
projet="simpledeb"
|
||||
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
|
||||
|
@ -57,43 +57,43 @@ f__log(){ # v08/2017
|
|||
# si $2=debOnly et si paquets manquants: return 1 et $debOnlyPackages ( $1=liste paquets )
|
||||
# si $2=debOnly et si paquets présent: return 0 et $debOnlyPresents ( $1=liste paquets )
|
||||
# attention priorité $debOnlyPackages sur $debOnlyPresents
|
||||
f__requis(){ # v17/08/2017-3
|
||||
local dependsMissing packagesMissing
|
||||
unset debOnlyPackages debOnlyPresents
|
||||
for i in $1; do
|
||||
local command="$(cut -d '>' -f 1 <<< $i)"
|
||||
local package="$(cut -d '>' -f 2 <<< $i)"
|
||||
if [ "$2" == "debOnly" ]; then
|
||||
if [ "$(which dpkg)" ]; then # package only et debian
|
||||
LC_ALL=C dpkg --get-selections | grep -qE "^$package[[:space:]]+install" \
|
||||
&& debOnlyPresents+="$package " || debOnlyPackages+="$package "
|
||||
else f__error "dpkg n'est pas disponible sur ce système"; fi
|
||||
elif [ -z "$(which $command)" ]; then
|
||||
dependsMissing+="$command "
|
||||
packagesMissing+="$package "
|
||||
fi
|
||||
done
|
||||
[ "$debOnlyPackages" ] && debOnlyPackages="$(xargs <<< $debOnlyPackages)" # trim début & fin
|
||||
[ "$debOnlyPresents" ] && debOnlyPresents="$(xargs <<< $debOnlyPresents)" # trim début & fin
|
||||
[ "$debOnlyPackages" ] && return 1
|
||||
[ "$debOnlyPresents" ] && return 0
|
||||
if [ "$dependsMissing" ]; then
|
||||
if [ -e /etc/debian_version ]; then f__error "paquet(s) manquant(s): " " $dependsMissing" \
|
||||
" vous devriez exécuter:$GREEN apt install $packagesMissing"
|
||||
else f__error "commandes(s) manquante(s): " "$dependsMissing"; fi
|
||||
f__requis(){ # v30/08/2017-3
|
||||
local dependsMissing packagesMissing command package
|
||||
unset debOnlyPackages debOnlyPresents
|
||||
for i in $1; do
|
||||
command="$(cut -d '>' -f 1 <<< $i)"
|
||||
package="$(cut -d '>' -f 2 <<< $i)"
|
||||
if [ "$2" == "debOnly" ]; then
|
||||
if [ "$(which dpkg)" ]; then # package only et debian
|
||||
LC_ALL=C dpkg --get-selections | grep -qE "^$package[[:space:]]+install" \
|
||||
&& debOnlyPresents+="$package " || debOnlyPackages+="$package "
|
||||
else f__error "dpkg n'est pas disponible sur ce système"; fi
|
||||
elif [ -z "$(which $command)" ]; then
|
||||
dependsMissing+="$command "
|
||||
packagesMissing+="$package "
|
||||
fi
|
||||
}
|
||||
done
|
||||
[ "$debOnlyPackages" ] && debOnlyPackages="$(xargs <<< $debOnlyPackages)" # trim début & fin
|
||||
[ "$debOnlyPresents" ] && debOnlyPresents="$(xargs <<< $debOnlyPresents)" # trim début & fin
|
||||
[ "$debOnlyPackages" ] && return 1
|
||||
[ "$debOnlyPresents" ] && return 0
|
||||
if [ "$dependsMissing" ]; then
|
||||
if [ -e /etc/debian_version ]; then f__error "paquet(s) manquant(s): " " $dependsMissing" \
|
||||
" vous devriez exécuter:$GREEN apt install $packagesMissing"
|
||||
else f__error "commandes(s) manquante(s): " "$dependsMissing"; fi
|
||||
fi
|
||||
}
|
||||
|
||||
# user ayant initié la session graphique, assigne $user_
|
||||
# return 1 sur échec identification user, return 2 sur absence home/
|
||||
# gestion variable environnement user avec: USER_INSTALL=user script
|
||||
f__user(){ # v21/08/2017-4
|
||||
f__user(){ # v30/08/2017-4
|
||||
if [ "$USER_INSTALL" ]; then # user_ via variable environnement, moyen d'injecter root
|
||||
user_="$USER_INSTALL";
|
||||
return 0
|
||||
fi
|
||||
local user_id test
|
||||
local root_login="$(grep ':0:' /etc/passwd | cut -d':' -f1)" || local root_login="root"
|
||||
local user_id test root_login
|
||||
root_login="$(grep ':0:' /etc/passwd | cut -d':' -f1)" || root_login="root"
|
||||
if [ "$SUDO_UID" ]; then
|
||||
user_id="$SUDO_UID";
|
||||
elif grep -qEo '[0-9]+' <<< "$XDG_RUNTIME_DIR" ; then
|
||||
|
@ -120,9 +120,10 @@ f__user(){ # v21/08/2017-4
|
|||
|
||||
# test wget, $1 url à tester, sortie script, sur erreur ou retour à la normale
|
||||
# si $2=print affiche url testée & entêtes http & location (si présente) et sortie normale fonction
|
||||
f__wget_test(){ #v28/08/2017
|
||||
local file_test_wget="/tmp/testWget-$RANDOM"
|
||||
wget -Sq --tries=1 --timeout=10 --user-agent="$user_agent" --spider --save-headers "$1" &>"$file_test_wget" || local retourWget="$?"
|
||||
f__wget_test(){ # v30/08/2017
|
||||
local file_test_wget retourWget retourHttp location
|
||||
file_test_wget="/tmp/testWget-$RANDOM"
|
||||
wget -Sq --tries=1 --timeout=10 --user-agent="$user_agent" --spider --save-headers "$1" &>"$file_test_wget" || retourWget="$?"
|
||||
[ "$retourWget" == 1 ] && retourWget="code erreur générique"
|
||||
[ "$retourWget" == 2 ] && retourWget="parse erreur (ligne de commande?)"
|
||||
[ "$retourWget" == 3 ] && retourWget="erreur Entrée/sortie fichier"
|
||||
|
@ -131,8 +132,8 @@ f__wget_test(){ #v28/08/2017
|
|||
[ "$retourWget" == 6 ] && retourWget="défaut authentification"
|
||||
[ "$retourWget" == 7 ] && retourWget="erreur de protocole"
|
||||
[ "$retourWget" == 8 ] && retourWget="réponse serveur en erreur"
|
||||
local retourHttp="$(grep -i 'HTTP/' "$file_test_wget" | tr -d '\n' | xargs)"
|
||||
local location="$(grep -i 'location' $file_test_wget | xargs)"
|
||||
retourHttp="$(grep -i 'HTTP/' "$file_test_wget" | tr -d '\n' | xargs)"
|
||||
location="$(grep -i 'location' $file_test_wget | xargs)"
|
||||
if [ "$2" == "print" ] && [ -z "$retourWget" ]; then
|
||||
echo -e "\n$1"
|
||||
echo "$GREEN$retourHttp$COLOR"
|
||||
|
@ -224,8 +225,7 @@ fgi_ip_public(){ # $1=IPv4|IPv6, assigne $ip_public # v18/08/2017
|
|||
}
|
||||
|
||||
unset ip_public
|
||||
local dig_test
|
||||
local ip_test
|
||||
local dig_test ip_test
|
||||
if [ "$1" == "IPv4" ]; then
|
||||
list_ip4_dig
|
||||
list_ip4
|
||||
|
@ -277,11 +277,12 @@ fgi_ip_public(){ # $1=IPv4|IPv6, assigne $ip_public # v18/08/2017
|
|||
}
|
||||
|
||||
# inscription dans tache upgrade en anacron hebdomadaire, via cron horaire, $1=upgrade|install|remove
|
||||
fscript_cronAnacron(){ # v27/08/2017
|
||||
fscript_cronAnacron(){ # v30/08/2017
|
||||
local dirAnacron dirSpool fileAnacron
|
||||
[ "$(type -t fscript_cronAnacron_special)" ] && fscript_cronAnacron_special # test, si fonction spécifique, appel
|
||||
local dirAnacron="/home/$user_/.config/anacron"
|
||||
local dirSpool="$dirAnacron/spool"
|
||||
local fileAnacron="$dirAnacron/$script.anacrontab"
|
||||
dirAnacron="/home/$user_/.config/anacron"
|
||||
dirSpool="$dirAnacron/spool"
|
||||
fileAnacron="$dirAnacron/$script.anacrontab"
|
||||
[ $EUID -eq 0 ] && sed -i "/$script.anacrontab/d" /etc/crontab
|
||||
case "$1" in
|
||||
install | upgrade )
|
||||
|
|
|
@ -2,6 +2,11 @@
|
|||
|
||||
|
||||
|
||||
## 1.5.0 30/08/2017
|
||||
|
||||
* révision f__requis, f__user, f__wget_test, fscript_cronAnacron
|
||||
* révision déclaration local
|
||||
|
||||
## 1.4.0 30/08/2017
|
||||
|
||||
* révision conditions d'utilisations, fscript_install, fscript_remove(), fscript_update
|
||||
|
|
Loading…
Reference in New Issue