Intégration de la branche release-4.4.0
This commit is contained in:
commit
c52b40c063
12
CHANGES.txt
12
CHANGES.txt
|
@ -1,3 +1,15 @@
|
||||||
|
## Version 4.4.0 du 15/04/2016-12:04
|
||||||
|
|
||||||
|
73391a9 awkrun: ajout d'un champ field à cqsql
|
||||||
|
2f60fec git_track_branch(): support de git >= 1.8.x
|
||||||
|
130b4d1 tenir compte du fichier /etc/debian_chroot pour initialiser UTOOLS_CHROOT
|
||||||
|
48c0420 ne pas afficher d'erreur si apache n'est pas installé
|
||||||
|
5e1a6cf Intégration de la branche rumount
|
||||||
|
1ad804b implémentation initiale de rumount
|
||||||
|
f460399 améliorer le calcul du répertoire destination avec pclone/pcrone
|
||||||
|
6411e63 configurer la valeur de l'umask
|
||||||
|
eb4362d apacheconfig: déploiement pour plusieurs systèmes à partir des mêmes sources
|
||||||
|
|
||||||
## Version 4.3.0 du 07/04/2016-14:57
|
## Version 4.3.0 du 07/04/2016-14:57
|
||||||
|
|
||||||
d021c97 support de on_debian() avec des arguments
|
d021c97 support de on_debian() avec des arguments
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
4.3.0
|
4.4.0
|
||||||
|
|
19
apacheconfig
19
apacheconfig
|
@ -139,13 +139,18 @@ function __template_updatef_dhost() {
|
||||||
[ -n "$ips" ] || __template_set_var ips ""
|
[ -n "$ips" ] || __template_set_var ips ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DEFAULT_ADMIN=supervision-gdrsi@listes.univ-reunion.fr
|
||||||
|
DEFAULT_CERTSDIR=1507-renater
|
||||||
|
DEFAULT_CANAME=1507-DigiCertCA.crt
|
||||||
|
set_defaults apacheconfig
|
||||||
|
|
||||||
TEMPLATECTL_NAME=apacheconfig
|
TEMPLATECTL_NAME=apacheconfig
|
||||||
TEMPLATECTL_SRCDIRS=(apacheconfig)
|
TEMPLATECTL_SRCDIRS=(apacheconfig)
|
||||||
TEMPLATECTL_CONFIG="$TEMPLATECTL_NAME"
|
TEMPLATECTL_CONFIG="$TEMPLATECTL_NAME"
|
||||||
TEMPLATECTL_DEFAULTS=(
|
TEMPLATECTL_DEFAULTS=(
|
||||||
admin=supervision-gdrsi@listes.univ-reunion.fr
|
admin="$DEFAULT_ADMIN"
|
||||||
certsdir=1507-renater
|
certsdir="$DEFAULT_CERTSDIR"
|
||||||
caname=1507-DigiCertCA.crt
|
caname="$DEFAULT_CANAME"
|
||||||
)
|
)
|
||||||
TEMPLATECTL_VARS=()
|
TEMPLATECTL_VARS=()
|
||||||
|
|
||||||
|
@ -205,13 +210,7 @@ fi
|
||||||
__template_set_var sysname "$sysname"
|
__template_set_var sysname "$sysname"
|
||||||
__template_set_var sysdist "$sysdist"
|
__template_set_var sysdist "$sysdist"
|
||||||
__template_set_var sysver "$sysver"
|
__template_set_var sysver "$sysver"
|
||||||
if check_sysinfos --vars sysname sysdist sysver bits -d debian -v jessie+; then
|
#check_sysinfos --vars sysname sysdist sysver bits "${templatectl_suffix[@]}
|
||||||
array_add TEMPLATECTL_SRCDIRS apacheconfig8
|
|
||||||
elif check_sysinfos --vars sysname sysdist sysver bits -d debian; then
|
|
||||||
array_add TEMPLATECTL_SRCDIRS apacheconfig7
|
|
||||||
else
|
|
||||||
ewarn "$(get_sysinfos_desc sysname sysdist sysver): système non supporté pour le déploiement"
|
|
||||||
fi
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
if [ "$action" == create ]; then
|
if [ "$action" == create ]; then
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
|
# Valeurs par défaut du template apacheconfig
|
||||||
|
|
||||||
|
#DEFAULT_ADMIN=supervision-gdrsi@listes.univ-reunion.fr
|
||||||
|
#DEFAULT_CERTSDIR=1507-renater
|
||||||
|
#DEFAULT_CANAME=1507-DigiCertCA.crt
|
|
@ -2,7 +2,9 @@
|
||||||
# Ce fichier contient des informations à charger systématiquement par nutools,
|
# Ce fichier contient des informations à charger systématiquement par nutools,
|
||||||
# et qui doivent prendre la précédence sur toute valeur autodétectée.
|
# et qui doivent prendre la précédence sur toute valeur autodétectée.
|
||||||
|
|
||||||
# Ce "système" est-is dans un CHROOT?
|
# Ce "système" est-is dans un CHROOT? Le module base.init initialise cette
|
||||||
|
# variable au contenu du fichier /etc/debian_chroot s'il existe, mais il est
|
||||||
|
# possible de forcer la valeur sur une machine non debian.
|
||||||
#export UTOOLS_CHROOT=1
|
#export UTOOLS_CHROOT=1
|
||||||
|
|
||||||
# Si oui, les valeurs suivantes peuvent être forcées pour les données systèmes:
|
# Si oui, les valeurs suivantes peuvent être forcées pour les données systèmes:
|
||||||
|
|
|
@ -7,6 +7,13 @@ if [ -n "$UTOOLS_BASH_PROMPT" ]; then
|
||||||
else
|
else
|
||||||
DEFAULT_PS1="$USER"'(\u)@\h \w \$ '
|
DEFAULT_PS1="$USER"'(\u)@\h \w \$ '
|
||||||
fi
|
fi
|
||||||
|
if [ -z "$UTOOLS_CHROOT" ]; then
|
||||||
|
if [ -n "$debian_chroot" ]; then
|
||||||
|
UTOOLS_CHROOT="$debian_chroot"
|
||||||
|
elif [ -r /etc/debian_chroot ]; then
|
||||||
|
UTOOLS_CHROOT="$(</etc/debian_chroot)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
if [ "$UTOOLS_CHROOT" == "1" ]; then
|
if [ "$UTOOLS_CHROOT" == "1" ]; then
|
||||||
DEFAULT_PS1="[CHROOT] $DEFAULT_PS1"
|
DEFAULT_PS1="[CHROOT] $DEFAULT_PS1"
|
||||||
elif [ -n "$UTOOLS_CHROOT" ]; then
|
elif [ -n "$UTOOLS_CHROOT" ]; then
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
: "${UTOOLS_AUTO:=1}"
|
: "${UTOOLS_AUTO:=1}"
|
||||||
export UTOOLS_AUTO
|
export UTOOLS_AUTO
|
||||||
# Activer le mode offline de git. Par exemple, les modifications ne sont pas
|
# Activer le mode offline de git. Par exemple, les modifications ne sont pas
|
||||||
# pousser automatiquement vers l'origine.
|
# poussées automatiquement vers l'origine.
|
||||||
: "${UTOOLS_VCS_OFFLINE:=}"
|
: "${UTOOLS_VCS_OFFLINE:=}"
|
||||||
export UTOOLS_VCS_OFFLINE
|
export UTOOLS_VCS_OFFLINE
|
||||||
|
|
||||||
|
@ -93,6 +93,9 @@ if [ -n "$UTOOLS_USSH_ALIAS" ]; then
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Configuration de l'umask
|
||||||
|
umask "${UTOOLS_UMASK:-0022}"
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
__uaddpath "@@dest@@" PATH
|
__uaddpath "@@dest@@" PATH
|
||||||
__uaddpath "@@dest@@" UINCPATH
|
__uaddpath "@@dest@@" UINCPATH
|
||||||
|
|
|
@ -21,6 +21,9 @@
|
||||||
# Désactiver l'affichage en couleur pour les fonctions e*
|
# Désactiver l'affichage en couleur pour les fonctions e*
|
||||||
#export UTOOLS_NO_COLORS=1
|
#export UTOOLS_NO_COLORS=1
|
||||||
|
|
||||||
|
# Valeur de l'umask à configurer
|
||||||
|
#export UTOOLS_UMASK=0022
|
||||||
|
|
||||||
# Editeur à utiliser
|
# Editeur à utiliser
|
||||||
#export EDITOR=vim
|
#export EDITOR=vim
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
012002000
|
012003000
|
||||||
|
|
|
@ -51,7 +51,7 @@ function get_default_apachebin_prefix() {
|
||||||
|
|
||||||
function get_default_apacheversion_prefix() {
|
function get_default_apacheversion_prefix() {
|
||||||
[ -n "$APACHEBIN" ] || return
|
[ -n "$APACHEBIN" ] || return
|
||||||
local version="$($APACHEBIN -v | grep version:)"
|
local version="$($APACHEBIN -v 2>/dev/null | grep version:)"
|
||||||
if [[ "$version" == *1.3* ]]; then
|
if [[ "$version" == *1.3* ]]; then
|
||||||
echo ""
|
echo ""
|
||||||
elif [[ "$version" == *2.0* ]]; then
|
elif [[ "$version" == *2.0* ]]; then
|
||||||
|
|
|
@ -155,6 +155,17 @@ OPTIONS
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__APACHE_AUTOCONF_SUFFIXES=(d8 d)
|
||||||
|
__APACHE_AUTOCONF_SUFFIX_d8=(-d debian -v jessie+)
|
||||||
|
__APACHE_AUTOCONF_SUFFIX_d=(-d debian)
|
||||||
|
function __apache_autoconf_check_suffix() {
|
||||||
|
array_contains __APACHE_AUTOCONF_SUFFIXES "$1" || return 1
|
||||||
|
local sysinfos="__APACHE_AUTOCONF_SUFFIX_${1}[@]"
|
||||||
|
check_sysinfos --vars sysname sysdist sysver bits "${!sysinfos}"
|
||||||
|
}
|
||||||
|
function __apache_autoconf_filter_suffix_files() {
|
||||||
|
grep -vF ..
|
||||||
|
}
|
||||||
function __apache_autoconf_setup() {
|
function __apache_autoconf_setup() {
|
||||||
if ! check_sysinfos --vars sysname sysdist sysver bits -s linux64 linux32 linux -d debian; then
|
if ! check_sysinfos --vars sysname sysdist sysver bits -s linux64 linux32 linux -d debian; then
|
||||||
eerror "apache_autoconf n'est supporté que sur Debian linux"
|
eerror "apache_autoconf n'est supporté que sur Debian linux"
|
||||||
|
@ -182,17 +193,33 @@ function __apache_autoconf_fillcopy() {
|
||||||
# script sed $FILLSCRIPT. Le fichier temporaire $FILLTEMP est utilisé pour
|
# script sed $FILLSCRIPT. Le fichier temporaire $FILLTEMP est utilisé pour
|
||||||
# le remplacement des valeurs. $3 contient le cas échéant des commandes sed
|
# le remplacement des valeurs. $3 contient le cas échéant des commandes sed
|
||||||
# supplémentaires
|
# supplémentaires
|
||||||
|
# Si des fichiers suffixes existent, ne faire la copie que si un fichier
|
||||||
|
# approprié correspondant au système courant est trouvé
|
||||||
local src="$1" dest="$2" sedscript="$3" perms="${4:-go+rX}"
|
local src="$1" dest="$2" sedscript="$3" perms="${4:-go+rX}"
|
||||||
|
|
||||||
local var found
|
# vérifier les fichiers suffixe
|
||||||
|
local suffix have_suffix found_suffix
|
||||||
|
for suffix in "${__APACHE_AUTOCONF_SUFFIXES[@]}"; do
|
||||||
|
if [ -f "$src..$suffix" ]; then
|
||||||
|
have_suffix=1
|
||||||
|
if __apache_autoconf_check_suffix "$suffix"; then
|
||||||
|
found_suffix=1
|
||||||
|
src="$src..$suffix"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
[ -n "$have_suffix" -a -z "$found_suffix" ] && return 1
|
||||||
|
|
||||||
|
# valeurs à remplacer dans le fichier
|
||||||
|
local var found_var
|
||||||
for var in "${FILLVARS[@]}"; do
|
for var in "${FILLVARS[@]}"; do
|
||||||
if quietgrep "@@${var}@@" "$1"; then
|
if quietgrep "@@${var}@@" "$src"; then
|
||||||
found=1
|
found_var=1
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
if [ "$found_var" ]; then
|
||||||
if [ "$found" ]; then
|
|
||||||
sed "$FILLSCRIPT
|
sed "$FILLSCRIPT
|
||||||
$sedscript" <"$src" >"$FILLTEMP"
|
$sedscript" <"$src" >"$FILLTEMP"
|
||||||
src="$FILLTEMP"
|
src="$FILLTEMP"
|
||||||
|
@ -272,10 +299,14 @@ function apache_autoconf() {
|
||||||
bits="$MYBITS"
|
bits="$MYBITS"
|
||||||
fi
|
fi
|
||||||
__apache_autoconf_setup || return 1
|
__apache_autoconf_setup || return 1
|
||||||
if check_sysinfos --vars sysname sysdist sysver bits -d debian -v jessie+; then
|
if __apache_autoconf_check_suffix d8; then
|
||||||
|
confdefault=000-default.conf
|
||||||
|
confdefaultssl=default-ssl.conf
|
||||||
destconfsdir="$APACHECONFDIR/conf-available"
|
destconfsdir="$APACHECONFDIR/conf-available"
|
||||||
a2xconf=1
|
a2xconf=1
|
||||||
elif check_sysinfos --vars sysname sysdist sysver bits -d debian; then
|
elif __apache_autoconf_check_suffix d; then
|
||||||
|
confdefault=default
|
||||||
|
confdefaultssl=default-ssl
|
||||||
destconfsdir="$APACHECONFDIR/conf.d"
|
destconfsdir="$APACHECONFDIR/conf.d"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -347,7 +378,7 @@ function apache_autoconf() {
|
||||||
local -a confs
|
local -a confs
|
||||||
local conf
|
local conf
|
||||||
etitle "Installation des configurations"
|
etitle "Installation des configurations"
|
||||||
array_from_lines confs "$(list_files "$confsdir" "*.conf")"
|
array_from_lines confs "$(list_files "$confsdir" "*.conf" | __apache_autoconf_filter_suffix_files)"
|
||||||
for conf in "${confs[@]}"; do
|
for conf in "${confs[@]}"; do
|
||||||
[ -z "$oneconf" -o "$conf" == "$oneconf" ] || continue
|
[ -z "$oneconf" -o "$conf" == "$oneconf" ] || continue
|
||||||
|
|
||||||
|
@ -364,7 +395,7 @@ function apache_autoconf() {
|
||||||
local -a confs
|
local -a confs
|
||||||
local conf
|
local conf
|
||||||
etitle "Installation des configurations des modules"
|
etitle "Installation des configurations des modules"
|
||||||
array_from_lines confs "$(list_files "$modulesdir" "*.conf")"
|
array_from_lines confs "$(list_files "$modulesdir" "*.conf" | __apache_autoconf_filter_suffix_files)"
|
||||||
for conf in "${confs[@]}"; do
|
for conf in "${confs[@]}"; do
|
||||||
[ -z "$onemodule" -o "$conf" == "$onemodule" ] || continue
|
[ -z "$onemodule" -o "$conf" == "$onemodule" ] || continue
|
||||||
|
|
||||||
|
@ -397,9 +428,9 @@ function apache_autoconf() {
|
||||||
local -a confs
|
local -a confs
|
||||||
local conf confname destconf certsconf
|
local conf confname destconf certsconf
|
||||||
etitle "Installation des sites"
|
etitle "Installation des sites"
|
||||||
array_lsfiles confs "$sitesdir" "*.conf"
|
array_from_lines confs "$(list_files "$sitesdir" "*.conf" | __apache_autoconf_filter_suffix_files)"
|
||||||
for conf in "${confs[@]}"; do
|
for confname in "${confs[@]}"; do
|
||||||
confname="$(basename "$conf")"
|
conf="$sitesdir/$confname"
|
||||||
[ -z "$onesite" -o "$confname" == "$onesite" ] || continue
|
[ -z "$onesite" -o "$confname" == "$onesite" ] || continue
|
||||||
|
|
||||||
certsconf=
|
certsconf=
|
||||||
|
@ -411,8 +442,8 @@ function apache_autoconf() {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
case "$confname" in
|
case "$confname" in
|
||||||
default.conf) destconf=default;;
|
default.conf) destconf="$confdefault";;
|
||||||
default.ssl.conf) destconf=default-ssl;;
|
default.ssl.conf) destconf="$confdefaultssl";;
|
||||||
*) destconf="$confname";;
|
*) destconf="$confname";;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -446,12 +477,10 @@ s#@@ca@@#$APACHESSLCERTSDIR/$(basename "$ca")#g
|
||||||
local -a confs
|
local -a confs
|
||||||
local conf
|
local conf
|
||||||
etitle "Configuration de base"
|
etitle "Configuration de base"
|
||||||
array_from_lines confs "$(list_files "$confdir")"
|
array_add ignores confs.conf modules.conf sites.conf
|
||||||
|
array_from_lines confs "$(list_files "$confdir" | __apache_autoconf_filter_suffix_files)"
|
||||||
for conf in "${confs[@]}"; do
|
for conf in "${confs[@]}"; do
|
||||||
array_contains ignores "$conf" && continue
|
array_contains ignores "$conf" && continue
|
||||||
case "$conf" in
|
|
||||||
confs.conf|modules.conf|sites.conf) continue;;
|
|
||||||
esac
|
|
||||||
estep "$conf"
|
estep "$conf"
|
||||||
__apache_autoconf_fillcopy \
|
__apache_autoconf_fillcopy \
|
||||||
"$confdir/$conf" \
|
"$confdir/$conf" \
|
||||||
|
@ -490,7 +519,7 @@ s#@@ca@@#$APACHESSLCERTSDIR/$(basename "$ca")#g
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
if [ -f "$confdir/sites.conf" ]; then
|
if [ -f "$confdir/sites.conf" ]; then
|
||||||
local -a sitesconfs; local sitesconf
|
local -a sitesconfs; local sitesconf enable
|
||||||
array_from_lines sitesconfs "$(<"$confdir/sites.conf" filter_conf)"
|
array_from_lines sitesconfs "$(<"$confdir/sites.conf" filter_conf)"
|
||||||
if [ ${#sitesconfs[*]} -gt 0 ]; then
|
if [ ${#sitesconfs[*]} -gt 0 ]; then
|
||||||
# si une configuration existe, ignorer la configuration
|
# si une configuration existe, ignorer la configuration
|
||||||
|
@ -499,14 +528,25 @@ s#@@ca@@#$APACHESSLCERTSDIR/$(basename "$ca")#g
|
||||||
disablesites=()
|
disablesites=()
|
||||||
for sitesconf in "${sitesconfs[@]}"; do
|
for sitesconf in "${sitesconfs[@]}"; do
|
||||||
if [ "${sitesconf#+}" != "$sitesconf" ]; then
|
if [ "${sitesconf#+}" != "$sitesconf" ]; then
|
||||||
array_del disablesites "${sitesconf#+}"
|
enable=1
|
||||||
array_add enablesites "${sitesconf#+}"
|
sitesconf="${sitesconf#+}"
|
||||||
elif [ "${sitesconf#-}" != "$sitesconf" ]; then
|
elif [ "${sitesconf#-}" != "$sitesconf" ]; then
|
||||||
array_del enablesites "${sitesconf#-}"
|
enable=
|
||||||
array_add disablesites "${sitesconf#-}"
|
sitesconf="${sitesconf#-}"
|
||||||
else
|
else
|
||||||
|
enable=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$sitesconf" in
|
||||||
|
default.conf) sitesconf="$confdefault";;
|
||||||
|
default.ssl.conf) sitesconf="$confdefaultssl";;
|
||||||
|
esac
|
||||||
|
if [ -n "$enable" ]; then
|
||||||
array_del disablesites "$sitesconf"
|
array_del disablesites "$sitesconf"
|
||||||
array_add enablesites "$sitesconf"
|
array_add enablesites "$sitesconf"
|
||||||
|
else
|
||||||
|
array_del enablesites "$sitesconf"
|
||||||
|
array_add disablesites "$sitesconf"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1918,8 +1918,8 @@ function qsql(s) {'"
|
||||||
gsub(/'/, \"''\", s)
|
gsub(/'/, \"''\", s)
|
||||||
return \"'\" s \"'\"
|
return \"'\" s \"'\"
|
||||||
"'}
|
"'}
|
||||||
function cqsql(s) {
|
function cqsql(s, field) {
|
||||||
return "," qsql(s)
|
return "," qsql(s) (field != ""? " " field: "")
|
||||||
}
|
}
|
||||||
function unquote_mysqlcsv(s) {
|
function unquote_mysqlcsv(s) {
|
||||||
gsub(/\\n/, "\n", s)
|
gsub(/\\n/, "\n", s)
|
||||||
|
|
|
@ -36,6 +36,7 @@ export TMPDIR="${TMPDIR:-${TMP:-${TEMP:-/tmp}}}"
|
||||||
# note: ajouter 'true' après le chargement de *nutoolsrc pour éviter que le
|
# note: ajouter 'true' après le chargement de *nutoolsrc pour éviter que le
|
||||||
# module se termine sur une erreur si ces fichiers n'existent pas, ce qui
|
# module se termine sur une erreur si ces fichiers n'existent pas, ce qui
|
||||||
# empêcherait de le charger avec urequire()
|
# empêcherait de le charger avec urequire()
|
||||||
|
[ -f /etc/debian_chroot ] && UTOOLS_CHROOT=1
|
||||||
[ -f /etc/nutoolsrc ] && . /etc/nutoolsrc
|
[ -f /etc/nutoolsrc ] && . /etc/nutoolsrc
|
||||||
[ -f ~/.nutoolsrc ] && . ~/.nutoolsrc
|
[ -f ~/.nutoolsrc ] && . ~/.nutoolsrc
|
||||||
true
|
true
|
||||||
|
|
|
@ -676,7 +676,14 @@ function git_track_branch() {
|
||||||
if ! git_have_rbranch "$branch" "$origin"; then
|
if ! git_have_rbranch "$branch" "$origin"; then
|
||||||
git push "$origin" "$branch" || return
|
git push "$origin" "$branch" || return
|
||||||
fi
|
fi
|
||||||
|
local version="$(LANG=C git version)"
|
||||||
|
version="${version#git version }"
|
||||||
|
eval "version=(${version//./ })"
|
||||||
|
if [ ${version[0]} -le 1 -a ${version[1]} -le 7 ]; then
|
||||||
git branch -t --set-upstream "$branch" "$origin/$branch"
|
git branch -t --set-upstream "$branch" "$origin/$branch"
|
||||||
|
else
|
||||||
|
git branch -u "$origin/$branch" "$branch"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
function git_ensure_branch() {
|
function git_ensure_branch() {
|
||||||
# retourner 0 si la branche a été créée, 1 si elle existait déjà, 2 en cas d'erreur
|
# retourner 0 si la branche a été créée, 1 si elle existait déjà, 2 en cas d'erreur
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
|
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
|
||||||
|
urequire DEFAULTS
|
||||||
|
|
||||||
|
function display_help() {
|
||||||
|
uecho "$scriptname: démonter un système de fichier récursivement
|
||||||
|
|
||||||
|
USAGE
|
||||||
|
$scriptname mountpoint
|
||||||
|
|
||||||
|
Démonter tous les systèmes de fichiers qui sont montés en-dessous de mountpoint
|
||||||
|
puis démonter mountpoint. Démonter aussi tous les systèmes de fichiers
|
||||||
|
bind-montés à partir d'un sous-répertoire de mountpoint."
|
||||||
|
}
|
||||||
|
|
||||||
|
args=(--help '$exit_with display_help')
|
||||||
|
parse_args "$@"; set -- "${args[@]}"
|
||||||
|
|
||||||
|
mountp="$1"
|
||||||
|
[ -n "$mountp" ] || die "Vous dévez spécifier le système de fichier à démonter"
|
||||||
|
[ -d "$mountp" ] || die "$mountp: répertoire introuvable"
|
||||||
|
setx mountp=abspath "$mountp"
|
||||||
|
|
||||||
|
run_as_root "$@"
|
||||||
|
|
||||||
|
setx -a mountps=findmnt -nlo TARGET
|
||||||
|
array_contains mountps "$mountp" || die "Vous devez spécifier un répertoire de montage valide"
|
||||||
|
|
||||||
|
function show_all() {
|
||||||
|
findmnt -T "$mountp" -Rnlo TARGET
|
||||||
|
findmnt -nlo TARGET | awkrun mountp="$mountp" '{ if (substr($0, 1, length(mountp) + 1) == (mountp "/")) print }'
|
||||||
|
}
|
||||||
|
|
||||||
|
setx -a mounts=evalp show_all // sort -u // \
|
||||||
|
awk '{print length($0) "," $0}' // \
|
||||||
|
sort -nr // \
|
||||||
|
awk '{sub(/[0-9]+,/, ""); print}'
|
||||||
|
for mount in "${mounts[@]}"; do
|
||||||
|
estep "$mount"
|
||||||
|
umount "$mount" || die
|
||||||
|
done
|
13
uproject
13
uproject
|
@ -270,9 +270,13 @@ elif array_contains GITANNEX_CMDS "$CMD"; then
|
||||||
elif [ "$CMD" == clone ]; then
|
elif [ "$CMD" == clone ]; then
|
||||||
repourl="${1%.git}"
|
repourl="${1%.git}"
|
||||||
[ -n "$repourl" ] || die "Vous devez spécifier l'url du dépôt git"
|
[ -n "$repourl" ] || die "Vous devez spécifier l'url du dépôt git"
|
||||||
|
splitfsep "$repourl" : userhost path
|
||||||
|
|
||||||
destdir="$2"
|
destdir="$2"
|
||||||
[ -n "$destdir" ] || setx destdir=basename -- "$repourl"
|
if [ -z "$destdir" ]; then
|
||||||
|
setx destdir=basename -- "$path"
|
||||||
|
destdir="${destdir%.git}"
|
||||||
|
fi
|
||||||
[ -d "$destdir" ] && die "$(ppath "$destdir"): répertoire existant"
|
[ -d "$destdir" ] && die "$(ppath "$destdir"): répertoire existant"
|
||||||
|
|
||||||
use_ssh_wrapper
|
use_ssh_wrapper
|
||||||
|
@ -282,12 +286,15 @@ elif [ "$CMD" == clone ]; then
|
||||||
elif [ "$CMD" == crone ]; then
|
elif [ "$CMD" == crone ]; then
|
||||||
repourl="${1%.git}"
|
repourl="${1%.git}"
|
||||||
[ -n "$repourl" ] || die "Vous devez spécifier l'url du dépôt git"
|
[ -n "$repourl" ] || die "Vous devez spécifier l'url du dépôt git"
|
||||||
|
splitfsep "$repourl" : userhost path
|
||||||
|
|
||||||
destdir="$2"
|
destdir="$2"
|
||||||
[ -n "$destdir" ] || setx destdir=basename -- "$repourl"
|
if [ -z "$destdir" ]; then
|
||||||
|
setx destdir=basename -- "$path"
|
||||||
|
destdir="${destdir%.git}"
|
||||||
|
fi
|
||||||
[ -d "$destdir" ] && die "$(ppath "$destdir"): répertoire existant"
|
[ -d "$destdir" ] && die "$(ppath "$destdir"): répertoire existant"
|
||||||
|
|
||||||
splitfsep "$repourl" : userhost path
|
|
||||||
splituserhost "$userhost" user host
|
splituserhost "$userhost" user host
|
||||||
[ -n "$user" ] || user=git
|
[ -n "$user" ] || user=git
|
||||||
[ -n "$host" ] || die "Vous devez spécifier l'hôte"
|
[ -n "$host" ] || die "Vous devez spécifier l'hôte"
|
||||||
|
|
Loading…
Reference in New Issue