install: possibilité de spécifier les permissions

apache.tools: s'assurer que le fichier est lisible pour tout le monde
This commit is contained in:
Jephté Clain 2014-12-01 08:39:15 +04:00
parent 9fdb0d1d4c
commit f1c4695e2b
3 changed files with 22 additions and 15 deletions

View File

@ -1 +1 @@
007005000 007006000

View File

@ -177,7 +177,7 @@ $3" <"$src" >"$FILLTEMP"
src="$FILLTEMP" src="$FILLTEMP"
fi fi
copy_update "$src" "$dest" copy_update "$src" "$dest" go+rX
} }
function apache_autoconf() { function apache_autoconf() {

View File

@ -14,8 +14,8 @@ fi
export ULIB_INSTALL_CONFIGURED=1 export ULIB_INSTALL_CONFIGURED=1
function ensure_exists() { function ensure_exists() {
# créer le fichier vide "$1" s'il n'existe pas déjà. retourner vrai si le # Créer le fichier vide "$1" s'il n'existe pas déjà, avec les permissions
# fichier a été créé sans erreur # $2(=644). retourner vrai si le fichier a été créé sans erreur
[ -f "$1" ] || { [ -f "$1" ] || {
if [ -n "$ULIB_INSTALL_VERBOSE" ]; then if [ -n "$ULIB_INSTALL_VERBOSE" ]; then
if [ -n "$ULIB_INSTALL_USES_PPATH" ]; then if [ -n "$ULIB_INSTALL_USES_PPATH" ]; then
@ -25,8 +25,9 @@ function ensure_exists() {
fi fi
fi fi
mkdirof "$1" mkdirof "$1"
touch "$1" local r=0
return $? touch "$1" && chmod "${2:-644}" "$1" || r=$?
return $r
} }
return 1 return 1
} }
@ -42,7 +43,8 @@ function __ulib_install_show_args() {
} }
function copy_replace() { function copy_replace() {
# Copier de façon inconditionnelle le fichier $1 vers le fichier $2 # Copier de façon inconditionnelle le fichier $1 vers le fichier $2, en
# réinitialisation les permissions à la valeur $3
local src="$1" dest="$2" local src="$1" dest="$2"
local srcname="$(basename -- "$src")" local srcname="$(basename -- "$src")"
@ -60,11 +62,15 @@ function copy_replace() {
fi fi
__ulib_install_show_args "$srcname" "$destarg" "$slash" __ulib_install_show_args "$srcname" "$destarg" "$slash"
fi fi
cp "$src" "$dest" local r=0
if cp "$src" "$dest"; then
[ -n "$3" ] && chmod "$3" "$dest" || r=$?
fi
return $r
} }
function copy_new() { function copy_new() {
# copier le fichier "$1" vers le fichier "$2" # Copier le fichier "$1" vers le fichier "$2", avec les permissions $3(=644)
# Ne pas écraser le fichier destination s'il existe déjà # Ne pas écraser le fichier destination s'il existe déjà
# Retourner vrai si le fichier a été copié sans erreur # Retourner vrai si le fichier a été copié sans erreur
local src="$1" dest="$2" local src="$1" dest="$2"
@ -73,15 +79,16 @@ function copy_new() {
mkdirof "$dest" || return 1 mkdirof "$dest" || return 1
if [ ! -e "$dest" ]; then if [ ! -e "$dest" ]; then
copy_replace "$src" "$dest" copy_replace "$src" "$dest" "$3"
else else
return 1 return 1
fi fi
} }
function copy_update() { function copy_update() {
# copier le fichier "$1" vers le fichier "$2", si $2 n'existe pas, ou si $1 # Copier le fichier "$1" vers le fichier "$2", si $2 n'existe pas, ou si $1
# a été modifié par rapport à $2. # a été modifié par rapport à $2. Réinitialiser le cas échéant les
# permissions à la valeur $3
# Retourner vrai si le fichier a été copié sans erreur. # Retourner vrai si le fichier a été copié sans erreur.
local src="$1" dest="$2" local src="$1" dest="$2"
@ -89,9 +96,9 @@ function copy_update() {
mkdirof "$dest" || return 1 mkdirof "$dest" || return 1
if [ ! -e "$dest" ]; then if [ ! -e "$dest" ]; then
copy_replace "$src" "$dest" copy_replace "$src" "$dest" "$3"
elif testdiff "$src" "$dest"; then elif testdiff "$src" "$dest"; then
copy_replace "$src" "$dest" copy_replace "$src" "$dest" "$3"
else else
return 1 return 1
fi fi
@ -112,7 +119,7 @@ function copy_update_ask() {
if testdiff "$src" "$dest"; then if testdiff "$src" "$dest"; then
diff -u "$dest" "$src" diff -u "$dest" "$src"
if ask_yesno -c "Voulez-vous remplacer $(ppath "$dest") par la nouvelle version?" C; then if ask_yesno -c "Voulez-vous remplacer $(ppath "$dest") par la nouvelle version?" C; then
copy_replace "$src" "$dest" copy_replace "$src" "$dest" "$3"
return $? return $?
fi fi
fi fi