Commit 0d76584f authored by kyodev's avatar kyodev

maj

parent 35a0036b
Pipeline #57923 passed with stages
in 22 seconds
......@@ -109,7 +109,7 @@ getFirefox i-canal
* les canaux par ordre croissant de versions:
` ESR <= release < beta = developer edition < nightly `
* le canal **all** est fictif et comprend _esr+latest+beta+nightly_ pour l'installation (pas de _dev_ donc)
* le canal **all** comprend toutes les versions installées pour les autres opérations
* le canal **all** comprend toutes les versions installées, pour les autres opérations
* pour chaque canal, une option permet de **copier** un éventuel profil _.default_.
le profil _.default_ existant est laissé en place.
......
# getInfo
![version: 4.6.0](https://img.shields.io/badge/version-4.6.0-blue.svg?longCache=true&style=for-the-badge)
![version: 4.7.0](https://img.shields.io/badge/version-4.7.0-blue.svg?longCache=true&style=for-the-badge)
![bash langage](https://img.shields.io/badge/bash-4-brightgreen.svg?longCache=true&style=for-the-badge)
![license LPRAB / WTFPL](https://img.shields.io/badge/license-LPRAB%20%2F%20WTFPL-blue.svg?longCache=true&style=for-the-badge)
......@@ -38,7 +38,7 @@ chmod +x getInfo
/ _' |/ _ \ __|| || '_ \| |_ / _ \
| (_| | __/ |_ | || | | | _| (_) |
\__, |\___|\__|___|_| |_|_| \___/
|___/ version 4.6.0 - 16/06/2018
|___/ version 4.7.0 - 16/06/2018
•ø••••••••••••••••◇◇◇•••••
......@@ -145,8 +145,8 @@ chmod +x getInfo
__ _ ___| |_|_ _|_ __ / _| ___
/ _' |/ _ \ __|| || '_ \| |_ / _ \
| (_| | __/ |_ | || | | | _| (_) |
\__, |\___|\__|___|_| |_|_| \___/
|___/ version 4.6.0 - 16/06/2018
\__, |\___|\__|___|_| |_|_| \___/ -h
|___/ version 4.7.0 - 16/06/2018
./getInfo : exécution script
getInfo : exécution script installé dans le système
......@@ -165,6 +165,7 @@ chmod +x getInfo
getInfo --ssid : affiche configurations ssid, pas de rapport markdown, root & NetworkManager requis
--debug : messages d'erreur (stderr) logués et exportés avec le rapport
--dev : une version de dev du script (si existante) est recherchée
-tn : durée de conservation du paste de n jour(s)
-----------------------------------------------------------------------
./getInfo -i : installation du script dans le système (root)
......@@ -173,7 +174,7 @@ chmod +x getInfo
getInfo -r, --remove : désinstallation du script (root)
getInfo --rrc : désinstallation gfetch (root)
getInfo -u, --upgrade : mise à jour script
getInfo -v, --version : version du script
getInfo -v, --version : version du script, installée et en ligne
-----------------------------------------------------------------------
plus d'infos: https://framaclic.org/h/doc-getinfo
......
......@@ -13,7 +13,7 @@ de téléchargement) seront alors sous la forme `getInfo ...`.
/ _' |/ _ \ __|| || '_ \| |_ / _ \
| (_| | __/ |_ | || | | | _| (_) |
\__, |\___|\__|___|_| |_|_| \___/
|___/ version 4.6.0 - 16/06/2018
|___/ version 4.7.0 - 16/06/2018
getInfo -h : afficher l'aide
......
# getIp
![version: 2.13.0](https://img.shields.io/badge/version-2.13.0-blue.svg?longCache=true&style=for-the-badge)
![version: 2.14.2](https://img.shields.io/badge/version-2.14.2-blue.svg?longCache=true&style=for-the-badge)
![bash langage](https://img.shields.io/badge/bash-4-brightgreen.svg?longCache=true&style=for-the-badge)
![license LPRAB / WTFPL](https://img.shields.io/badge/license-LPRAB%20%2F%20WTFPL-blue.svg?longCache=true&style=for-the-badge)
......
......@@ -6,7 +6,7 @@ script="getFirefox"
#contact="IRC ##sdeb@freenode.net ou https://framagit.org/sdeb/getFirefox/issues"
##### license LPRAB/WTFPL
# auteur: simpledeb
# auteur: sdeb
# contributeurs: kyodev
#####
......
......@@ -6,7 +6,7 @@ script="getFlashPlayer"
# contact="IRC ##sdeb@freenode.net ou https://framagit.org/sdeb/getFlashPlayer/issues"
##### license LPRAB/WTFPL
# auteur: simpledeb
# auteur: sdeb
# contributeurs: kyodev, coyotus, naguam
#####
......
This diff is collapsed.
#!/bin/bash
# shellcheck disable=SC2016,SC1117
# shellcheck disable=SC2016
# SC2016 Expressions don't expand in single quotes
# SC1117: Backslash is literal in "\n". Prefer explicit escaping: "\\n".
version=2.13.0
version=2.14.2
date="16/06/2018"
script="getIp"
# contact="IRC ##sdeb@freenode.net ou https://framagit.org/sdeb/getIp/issues"
......@@ -81,6 +80,59 @@ f__color(){ # 29/05/2018
fi
}
# use dig or drill according to availability, options: hostname [@server|type|nostd|host], display ip | n/a (equivalent + short)
# if option --host, diplay hostname: ip
# dig has priority over dril if the two command are presents
# type : aaaa | a | txt | soa | any | mx | AAAA | A | TXT | SOA | ANY | MX
# option nostd for dig only: +timeout=1 +retry=1
f__dig(){ # 16/06/2018
local ini options type host server hostname dig ip domain ttl class typ ipx z
ini=$( shopt -p nocasematch )
if (( $# == 0 )); then
echo "f__dig: argument manquant"
return 1
fi
shopt -s nocasematch
while (( $# )) ; do
case "$1" in
nostd ) options+=( '+timeout=1' '+retry=1' ) ;;
aaaa | a | txt | soa | any | mx ) type="$1" ;;
host ) host='yes' ;;
@* ) server=( "$1" ) ;;
* ) hostname="$1" ;;
esac
shift
done
type="${type:=A}"
if type -p dig &>/dev/null; then
dig=$( dig "${options[@]}" "$hostname" "${server[@]}" "$type" )
elif type -p drill &>/dev/null; then
dig=$( drill "$hostname" "${server[@]}" "${type[@]}" )
else
echo "dig or drill command unavailable"
eval "$ini"
return 1
fi
if [[ $dig =~ answer:\ 0 ]]; then
dig='n/a'
elif [[ $dig =~ answer:\ 1 ]]; then
# shellcheck disable=SC2034
while read -r domain ttl class typ ipx z; do
if [[ $domain$class$typ == ${hostname}\.IN$type ]]; then
ip+="$ipx "
fi
done <<< "$dig"
dig="$ip"
fi
[ "$host" ] && echo -n "$hostname: "
echo "$dig"
eval "$ini"
if [ "$dig" == "n/a" ]; then
return 1
fi
}
# $1=-c|-l|-lc, $2 répertoire, [$3] motif exclusion sur nom fichier, affiche 0|null si répertoire inexistant
# -c: compte du nombre de fichiers dans un répertoire
# -l: liste inline des noms de fichiers seuls (sans chemin) (similaire ls)
......@@ -228,6 +280,15 @@ f__sudo(){ # 11/06/2018
fi
}
# $1=NOM de la variable à trimer (variable et non $variable), [$2=left|right|all], all si vide
f__trim(){ # 07/03/2018
local trim=${!1}
[[ "$2" == right || "$2" == all || -z "$2" ]] && trim="${trim%${trim##*[^[:space:]]}}" # fin right
[[ "$2" == left || "$2" == all || -z "$2" ]] && trim="${trim#${trim%%[^[:space:]]*}}" # début left
eval "$1=\"$trim\""
}
# user ayant initié la session graphique, assigne $fu_user
# return 1 sur échec identification user, return 2 sur absence home/
# gestion variable environnement user avec: USER_INSTALL=<user> script
......@@ -343,7 +404,8 @@ f__wget_test(){ # 07/06/2018
exit 0
}
f_affichage(){ # 15/06/2018
# shellcheck disable=SC1117
f_affichage(){ # 16/06/2018
(( x_logo == 1 )) && return
x_logo=1
clear 2>/dev/null || tput clear 2>/dev/null
......@@ -363,7 +425,7 @@ f_affichage(){ # 15/06/2018
echo -e "$date$STD\n"
}
f_help(){ # 15/06/2018
f_help(){ # 16/06/2018
cat <<- end
${GREEN}./getIp :$STD exécution script
......@@ -377,12 +439,14 @@ f_help(){ # 15/06/2018
$BLUE$script -46$STD --public : affiche ipv4 & ipv6 public
$BLUE$script ''$STD, --local : affiche adresses mac / ip privées / passerelle
$BLUE$script -us$STD : upgrade spécial du script en place (sans être installé)
$GREEN --dev :$STD une version de dev du script (si existante) est recherchée
-----------------------------------------------------------------------
$BLUE./$script -i$STD : installation du script dans le système $RED(root)$STD
$BLUE$script -h$STD, --help : affichage aide
$BLUE$script -r$STD, --remove : désinstallation du script $RED(root)$STD
$BLUE$script -u$STD, --upgrade : mise à jour script
$BLUE$script -v$STD, --version : version du script
$BLUE$script -v$STD, --version : version du script, installée et en ligne
-----------------------------------------------------------------------
plus d'infos: $GREEN$url_notice$STD
......@@ -391,8 +455,8 @@ f_help(){ # 15/06/2018
}
# $1 [-4|-6], par défaut -4, affiche ip pub, return 1 on failure
# requiert f__cnx & f_ip_validate & f__random & f__log
f_ip_pub(){ # 16/06/2018
# requiert f__cnx & f_ip_validate & f__random & f__log & f__dig
f_ip_pub(){ # 16/06/2018-2
local proto="-4" ip_pub base_size cmd sequence xyz server user_agent="Mozilla/5.0 Firefox"
declare -a base cmds raw4 raw6 dns4 dns6
......@@ -447,18 +511,18 @@ f_ip_pub(){ # 16/06/2018
[[ "$1" == '-6' || "$1" == '6' ]] && proto="-6"
type -p host &>/dev/null && cmds+=( "host -R0 -W1 -t " ) # deprecated
type -p dig &>/dev/null && cmds+=( "dig +short +timeout=1 +retry=1 " )
type -p dig &>/dev/null || type -p drill &>/dev/null && cmds+=( "f__dig nostd " )
type -p wget &>/dev/null && cmds+=( "wget --user-agent=$user_agent --quiet --timeout=1 --tries=1 -o /dev/null -O - " )
type -p curl &>/dev/null && cmds+=( "curl --silent --location --retry 0 --max-time 1 " )
if (( ${#cmds[@]} == 0 )); then
echo "f_ip_pub(): no available commands (host|dig|wget|curl)" >&2
echo "f_ip_pub(): no available commands (host|dig|drill|wget|curl)" >&2
return
fi
for cmd in "${cmds[@]}"; do
if [[ "$proto" == '-4' && "$cmd" =~ ^(host|dig) ]] ; then
if [[ "$proto" == '-4' && "$cmd" =~ ^(host|f__dig) ]] ; then
base=( "${dns4[@]}" )
elif [[ "$proto" == '-6' && "$cmd" =~ ^(host|dig) ]] ; then
elif [[ "$proto" == '-6' && "$cmd" =~ ^(host|f__dig) ]] ; then
base=( "${dns6[@]}" )
elif [[ "$proto" == '-4' && "$cmd" =~ ^(wget|curl) ]] ; then
base=( "${raw4[@]}" )
......@@ -528,8 +592,8 @@ f_ip_validate(){ # 17/05/2018
# "[ \"$1\" != \"notitre\" ]" ou "[ $1 != notitre ]" (attention au manque de ")
# flush (f_pr flush) inutile si f_d(x) final
# $1 type, $2 texte, [$3] test /!\ assigne la variable parent $text
f_pr(){ # 09/03/2018
local preline='' line='' endline=" \n"
f_pr(){ # 16/06/2018
local preline='' line='' endline=" \\n"
[[ "$1" == 'titre1' ]] && preline=" $GREEN"
[[ "$1" == 'titre1' ]] && endline+="$STD"
......@@ -544,16 +608,16 @@ f_pr(){ # 09/03/2018
eval "$3" || return 0 # évaluation de la CONDITION, si erreur: sortie
fi
if [[ "$1" == "hl" ]]; then # <hl>
text+="\n---\n\n"
text+="\\n---\\n\\n"
elif [[ "$1" ]]; then
text+="$preline$line$endline" # ligne formatée
else
text+="\n" # newline
text+="\\n" # newline
fi
}
# affichage ip, local
fi_ip(){ # 09/03/2018
fi_ip(){ # 16/06/2018
local ifn_p4 text
figet_ip "-4" || f__error "iproute2 doit être installé" "il remplace net-tools qui n'est plus développé"
......@@ -584,7 +648,7 @@ fi_ip(){ # 09/03/2018
f_pr l2 "$fg_ip_deprec" '[ "$fg_ip_deprec" ]'
f_pr '[ "$fg_ip_deprec" ]'
echo -en "$text\n" #>> "$fileOutput"
echo -en "$text\\n" #>> "$fileOutput"
}
# $1=-4|-6|-46 protocole, affichage ip publiques
......@@ -816,7 +880,7 @@ test_user(){ # 09/03/2018
f__user
retourFUser="$?"
[ "$retourFUser" -eq 1 ] && f__error "user indéterminé" \
"pour contourner, lancer le script avec:\n$GREEN USER_INSTALL=<user> $0 \n"
"pour contourner, lancer le script avec:\\n$GREEN USER_INSTALL=<user> $0 \\n"
if [ "$retourFUser" -eq 2 ]; then
if [ "$EUID" -eq 0 ]; then
fu_user="root"
......@@ -861,24 +925,33 @@ script_logs="/var/log/sdeb_$script.log"
url_script="https://framagit.org/sdeb/getIp/raw/master/getIp"
url_notice="https://framaclic.org/h/doc-getip"
options="$*"
[ "$options" ] || options="--local"
script_options="$*"
# options
while (( $# )) ; do
case "$1" in
--dev ) url_script=${url_script//\/master\///dev/} ;;
* ) options+=( "$1" ) ;;
esac
shift
done
(( ${#options[@]} == 0 )) && options=( --local ) # vide help (si fileDev), sinon install
for j in $options; do
#actions
for i in "${!options[@]}"; do
# shellcheck disable=SC2221,SC2222
case $j in
!(--public|-4|-6|-46|-64) )
f_affichage
echo ;;&
case ${options[$i]} in
-i | --install | -r | --remove )
if [ "$EUID" -ne 0 ]; then
f__info "vous devez être$RED ROOT$BLUE pour cette opération"
f__sudo "exec $0 $*"
f__info raw "vous devez être$RED ROOT$BLUE pour cette opération"
f__sudo "exec $0 $script_options"
exit
fi
;;&
fi ;;&
!(--public|-4|-6|-46|-64) )
f_affichage
echo ;;&
-i | --install | -r | --remove | -u | --upgrade | -us )
test_user ;;&
-4 | --ip4 ) # affiche ip v4 public
fi_ip_pub "-4" ;;
-6 | --ip6 ) # affiche ip v6 public
......@@ -886,7 +959,8 @@ for j in $options; do
-46 | -64 | --public ) # ip v4 & v6
fi_ip_pub "-46" ;;
--local ) # affiche ip locales
fi_ip ;;
fi_ip ;;
-i | --install ) # installation du script dans le système
fscript_install ;;
-r | --remove ) # suppression du script dans le système
......
......@@ -6,7 +6,7 @@ script="getThunderbird"
# contact="IRC ##sdeb@freenode.net ou https://framagit.org/sdeb/getThunderbird/issues"
##### license LPRAB/WTFPL
# auteur: simpledeb
# auteur: sdeb
# contributeurs: kyodev
#####
......
......@@ -6,7 +6,7 @@ script="getXfox"
#contact="IRC ##sdeb@freenode.net ou https://framagit.org/sdeb/getXfox/issues"
##### license LPRAB/WTFPL
# auteur: simpledeb
# auteur: sdeb
# contributeurs: kyodev
#####
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment