This commit is contained in:
kyodev 2017-08-08 10:43:36 +02:00
parent 2b19e549c3
commit 08bcc1867c
1 changed files with 44 additions and 45 deletions

View File

@ -1,9 +1,7 @@
#!/bin/bash
#!/bin/bash
version=0.3.2b1
date="07/08/2017"
version=0.4.0b1
date="08/08/2017"
projet="simpledeb"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues"
script="getIp"
@ -14,6 +12,15 @@ urlScript="https://framagit.org/kyodev/kyopages/raw/master/scripts/$script"
# contributeurs: kyodev
#####
# affichage $1 en rouge, $1++ optionnels en bleu, sortie script sur erreur
f__error() {
echo -e "\n$RED Erreur critique: $1 $COLOR"
for (( i=2 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
echo "$COLOR"
if [ "$opType" == "upgrade" ]; then f__log "$script $version: $1"; fi
exit 1
}
# affichage des paramètres en bleu, ligne vide à la fin
f__info() {
for (( i=1 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
@ -31,15 +38,6 @@ f__log(){
fi
}
# affichage $1 en rouge, $1++ optionnels en bleu, sortie script sur erreur
f__error() {
echo -e "\n$RED Erreur critique: $1 $COLOR"
for (( i=2 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
echo "$COLOR"
if [ "$opType" == "upgrade" ]; then f__log "$script $version: $1"; fi
exit 1
}
# user ayant initié la session graphique, assigne $user_, testé avec mate, gnome, xfce. manque KDE
# sortie script sur erreur, gestion variable environnement pour personnaliser l'user avec:
# USER_INSTALL=user script
@ -75,7 +73,7 @@ echo "1 01 ""$script""test nice /opt/bin/$script --upgrade &>/dev/null" > "$file
mkdir -p "$dirSpool"
chown -R --no-preserve-root "$user_": "$dirSpool"
chmod -R --no-preserve-root ug+xw "$dirSpool"
# cron tab pour activation horaire anacron
# crontab pour activation horaire anacron
grep -q ".*$script.anacrontab" /etc/crontab || \
echo "@hourly $user_ /usr/sbin/anacron -t $fileAnacron -S $dirSpool" >> /etc/crontab
;;
@ -129,7 +127,6 @@ fscript_install(){
fi
[ $EUID -eq 0 ] || f__error "vous devez être ROOT pour installer ce script dans le système"
if ! which wget &>/dev/null; then f__error "wget manquant pour exploiter ce script"; fi
f__user
# install /opt
mkdir -p /opt/bin/
cp -d "$(basename $0)" "/opt/bin/$script"
@ -150,7 +147,6 @@ fscript_install(){
# suppression du script dans le système
fscript_remove(){
if [ $EUID -ne 0 ]; then f__error "vous devez être ROOT pour supprimer ce script du système"; fi
f__user
# suppression de /opt
rm /opt/bin/"$script" &>/dev/null
unlink /usr/bin/"$script" &>/dev/null
@ -162,6 +158,29 @@ fscript_remove(){
}
fi_help(){
echo -e "\n$GREEN $script $version$BLUE"
cat << 'EOF'
----------------------------------------------------------------------
./getIo : exécution normale
getIp : exécution normale si script installé dans le système
ce script requiert une des commandes suivantes pour déterminer l'ip publique :
dig (dnsutils) / wget / curl / telnet / nc
options:
--help, -h : affichage aide
--install, -i : installation du script dans le système
--remove, -r : suppression du script dans le système
--upgrade, -u : upgrade script si maj possible
--version, -v : version du script, en ligne et en cours d'exécution
--ip4 | -4 : affiche ipv4 public
--ip6 | -6 : affiche ipv6 public
--local | "" : affiche ip / passerelle privées
EOF
echo -e "$COLOR"
}
get_ip() { # $ip_local, $gateway, $gateway_type, $gateway_one, $ip_local, $ip_local_type, $ifname, $ifname_type
ip_local=$(ip route | awk '/proto.*src/ {print $9, "pour",$3}')
gateway=$(ip route | awk '/default.*via/ {print $3, "pour", $5}')
@ -266,29 +285,6 @@ get_ip_public(){ # $1=IPv4|IPv6, assigne $ip_public
fi
}
fi_help(){
echo -e "\n$GREEN $script $version$BLUE"
cat << 'EOF'
----------------------------------------------------------------------
./getIo : exécution normale
getIp : exécution normale si script installé dans le système
ce script requiert une des commandes suivantes pour déterminer l'ip publique :
dig (dnsutils) / wget / curl / telnet / nc
options:
--help, -h : affichage aide
--install, -i : installation du script dans le système
--remove, -r : suppression du script dans le système
--upgrade, -u : upgrade script si maj possible
--version, -v : version du script, en ligne et en cours d'exécution
--ip4 : affiche ipv4 public
--ip6 : affiche ipv6 public
--local : affiche ip / passerelle privées
EOF
echo -e "$COLOR"
}
# initialisation
PATH='/bin:/usr/bin:/sbin' ; IFS=' '
@ -296,31 +292,34 @@ PATH='/bin:/usr/bin:/sbin' ; IFS=' '
BLUE="$(printf "\033[0;34m")" # info
RED="$(printf "\033[0;31m")" # alerte
COLOR="$(printf "\033[0m")" # standard
fileLogs="/var/log/sdeb_$script.log"
for i in $@; do
options=$@
for i in "$options"; do
case $i in
--install | -i ) fscript_install ;; # installation du script dans le système
--remove | -r ) fscript_remove ;; # suppression du script dans le système
--install | -i ) f__user; fscript_install ;; # installation du script dans le système
--remove | -r ) f__user; fscript_remove ;; # suppression du script dans le système
--version | -v ) fscript_get_version ;; # version du script, en ligne et exécuté
--upgrade | -u )
f__log "test mise à jour"
fscript_get_version
fscript_dl ;; # upgrade script si maj possible
--ip4 )
--ip4 | -4 )
get_ip_public "IPv4"
echo "$ip_public" ;; # affiche ip v4 public
--ip6 )
--ip6 | -6 )
get_ip_public "IPv6"
echo "$ip_public" ;; # affiche ip v6 public
--local )
--local | "" )
get_ip
echo "ip $ip_local"
echo "passerelle $gateway" ;; # affiche ips locales et passerelles
--help | -h | * ) fi_help ;; # affichage help
esac
done
exit
wget -O getIp https://framagit.org/kyodev/kyopages/raw/master/scripts/getIp