Intégration de la branche release-9.10.0

This commit is contained in:
Jephté Clain 2020-11-12 23:05:13 +04:00
commit 337f24c447
11 changed files with 262 additions and 114 deletions

View File

@ -1,3 +1,20 @@
## Version 9.10.0 du 12/11/2020-23:05
* `24d0519` dk: support merge .shared_env et .machine_env
* `45c40d7` dk: support de --pull
* `c921d2a` pff: support de NOUPSTREAM
* `edf956f` dk: BRANCH peut aussi être un ^COMMIT
* `85842f3` renommer start-screen en Sscreen
* `e395720` maj doc
* `4603b1a` bug
* `a91542b` maj .gitattributes par défaut
* `51c4c33` support sélection java 11
* `82a7952` dm: support des aliases pour ssh aussi
* `d1d32de` dk: bug avec update-devel
* `037cb1a` maj template sql
* `04d037f` support rhel8 / ol8
* `725ba6d` cssh: donner un nom à la session
## Version 9.9.0 du 21/09/2020-18:08 ## Version 9.9.0 du 21/09/2020-18:08
* `2ec6c21` support gros doigt de python2 sur les systèmes modernes * `2ec6c21` support gros doigt de python2 sur les systèmes modernes

View File

@ -33,8 +33,9 @@ function __auto_screen() {
local msgprefix local msgprefix
local screens count local screens count
local session_name="nutools-$USER"
screens="$(LANG=C screen -ls | grep -Ei "attached|detached")" screens="$(LANG=C screen -ls | grep -Ei "${session_name}.*attached|detached")"
if [ -n "$screens" ]; then if [ -n "$screens" ]; then
count="$(echo "$screens" | wc -l)" count="$(echo "$screens" | wc -l)"
else else
@ -52,14 +53,14 @@ La première session"
if __ask " if __ask "
$msgprefix sera reconnectée automatiquent dans 2 secondes $msgprefix sera reconnectée automatiquent dans 2 secondes
Voulez-vous reconnecter la session screen? [On] "; then Voulez-vous reconnecter la session screen? [On] "; then
exec screen -q -s -/bin/bash -xRR exec screen -q -s -/bin/bash -xRR -S "$session_name"
else else
exec /bin/bash -l exec /bin/bash -l
fi fi
elif __ask " elif __ask "
Une ${COULEUR_VERTE}nouvelle session screen${COULEUR_NORMALE} sera lancée automatiquement dans 2 secondes Une ${COULEUR_VERTE}nouvelle session screen${COULEUR_NORMALE} sera lancée automatiquement dans 2 secondes
Voulez-vous lancer une session screen? [On] "; then Voulez-vous lancer une session screen? [On] "; then
exec screen -q -s -/bin/bash -RR exec screen -q -s -/bin/bash -RR -S "$session_name"
else else
exec /bin/bash -l exec /bin/bash -l
fi fi

View File

@ -1 +1 @@
9.9.0 9.10.0

6
cssh
View File

@ -24,15 +24,15 @@ eval "$vars"
[ "${#hosts[*]}" -gt 0 ] || die "Vous devez spécifier l'hôte sur lequel se connecter" [ "${#hosts[*]}" -gt 0 ] || die "Vous devez spécifier l'hôte sur lequel se connecter"
[ ${#args[*]} -gt 0 ] && cmd="$(qvals "${args[@]}"); " || cmd= [ ${#args[*]} -gt 0 ] && cmd="$(qvals "${args[@]}"); " || cmd=
cmd="$cmd$(<"$scriptdir/start-screen")" cmd="$cmd$(<"$scriptdir/Sscreen")"
cmd="'${cmd//\'/\'\\\'\'}'" cmd="'${cmd//\'/\'\\\'\'}'"
for host in "${hosts[@]}"; do for host in "${hosts[@]}"; do
"$ssh" \ "$ssh" \
"${options[@]}" -qt "$host" -- \ "${options[@]}" -qt "$host" -- \
"[ -x /usr/local/nutools/start-screen ] && exec /usr/local/nutools/start-screen $(qvals "${args[@]}") || exit 123" "[ -x /usr/local/nutools/Sscreen ] && exec /usr/local/nutools/Sscreen $(qvals "${args[@]}") || exit 123"
if [ $? -eq 123 ]; then if [ $? -eq 123 ]; then
# pas de start-screen en face, le faire à la main # pas de Sscreen en face, le faire à la main
${exec:+exec} \ ${exec:+exec} \
"$ssh" "${options[@]}" -t "$host" -- \ "$ssh" "${options[@]}" -t "$host" -- \
/bin/bash -c "$cmd" /bin/bash -c "$cmd"

63
dk
View File

@ -18,7 +18,7 @@ Certaines commandes ci-dessous ont le même nom que des commandes docker, et
nécessitent un projet docker ou docker-compose. Si ces commandes sont lancées nécessitent un projet docker ou docker-compose. Si ces commandes sont lancées
alors qu'on n'est pas dans un projet docker, alors elles sont passées telle alors qu'on n'est pas dans un projet docker, alors elles sont passées telle
quelles à docker. ATTENTION: comme la commande est exécutée par docker, cela quelles à docker. ATTENTION: comme la commande est exécutée par docker, cela
veut dire qu'elle n'aura pas la même sématique. veut dire qu'elle n'aura pas la même sémantique.
COMMANDES COMMANDES
get-profile get-profile
@ -273,7 +273,7 @@ OPTIONS générales
Spécifier l'hôte pour la commande systemd-unit Spécifier l'hôte pour la commande systemd-unit
OPTIONS build OPTIONS build
(ces options ne sont valides que pour les commandes build, brd, bs, bd, bpd) (ces options ne sont valides que pour les commandes build, brd, bs, by, bpy)
--stack --stack
Indiquer que le build est fait pour un déploiement avec deploy. Indiquer que le build est fait pour un déploiement avec deploy.
S'il existe un fichier docker-stack.yml, il est utilisé de préférence à S'il existe un fichier docker-stack.yml, il est utilisé de préférence à
@ -281,9 +281,11 @@ OPTIONS build
forme docker-stack.PROFILE.yml sont utilisés de préférence aux fichiers forme docker-stack.PROFILE.yml sont utilisés de préférence aux fichiers
docker-compose.PROFILE.yml docker-compose.PROFILE.yml
Cette option n'est nécessaire qu'avec build puisque les commandes Cette option n'est nécessaire qu'avec build puisque les commandes
deploy, bd, bpd et update impliquent --stack deploy, by, bpy et update impliquent --stack
-j, --no-cache -j, --no-cache
Ne pas utiliser le cache lors du build Ne pas utiliser le cache lors du build
-U, --pull
Essayer de récupérer une version plus récente de l'image source
-g, --ug, --no-update-apps -g, --ug, --no-update-apps
ne pas mettre à jour les dépôts dépendants. ces dépôts sont définis dans ne pas mettre à jour les dépôts dépendants. ces dépôts sont définis dans
le fichier update-apps.conf qui a le format suivant: le fichier update-apps.conf qui a le format suivant:
@ -342,6 +344,8 @@ VARIABLES de update-apps.conf
vaut 'origin' par défaut vaut 'origin' par défaut
BRANCH BRANCH
vaut 'develop' par défaut vaut 'develop' par défaut
Pour toutes les variables de type BRANCH, utiliser la syntaxe ^COMMIT
pour ignorer ORIGIN et sélectionner un commit en particulier
TYPE TYPE
vaut 'composer' par défaut si le fichier composer.json existe à la vaut 'composer' par défaut si le fichier composer.json existe à la
racine du projet. sinon vaut 'none' par défaut racine du projet. sinon vaut 'none' par défaut
@ -447,10 +451,6 @@ function docker_set_env_args() {
[ -n "$PROFILE" -a -f ".build.$PROFILE.env" ] && source "./.build.$PROFILE.env" [ -n "$PROFILE" -a -f ".build.$PROFILE.env" ] && source "./.build.$PROFILE.env"
[ -n "$PROFILE" -a -f "build.$PROFILE.env" ] && source "./build.$PROFILE.env" [ -n "$PROFILE" -a -f "build.$PROFILE.env" ] && source "./build.$PROFILE.env"
} }
function docker_set_run_args() {
replace_run_args+=(--env-file "$1")
source "$1"
}
function docker_check_name() { function docker_check_name() {
[ -n "$NAME" ] || die "Vous devez définir NAME dans .build.env" [ -n "$NAME" ] || die "Vous devez définir NAME dans .build.env"
@ -765,7 +765,9 @@ function build_update_apps() {
fi fi
DEVEL_SRCDIR="${var}_DEVEL_SRCDIR"; DEVEL_SRCDIR="${!DEVEL_SRCDIR}" DEVEL_SRCDIR="${var}_DEVEL_SRCDIR"; DEVEL_SRCDIR="${!DEVEL_SRCDIR}"
[ -n "$DEVEL_SRCDIR" ] || DEVEL_SRCDIR="$DEFAULT_DEVEL_SRCDIR/${URL##*/}" if [ -z "$DEVEL_SRCDIR" -a -n "$URL" ]; then
DEVEL_SRCDIR="$DEFAULT_DEVEL_SRCDIR/${URL##*/}"
fi
DEST="${var}_DEST"; DEST="${!DEST}" DEST="${var}_DEST"; DEST="${!DEST}"
[ -n "$DEST" ] || DEST="$app/b" [ -n "$DEST" ] || DEST="$app/b"
@ -792,7 +794,7 @@ function build_update_apps() {
# calculer le type maintenant, on en a besoin pour le mode devel # calculer le type maintenant, on en a besoin pour le mode devel
TYPE="${var}_TYPE"; TYPE="${!TYPE}" TYPE="${var}_TYPE"; TYPE="${!TYPE}"
if [ -n "$BUILD_UPDATE_DEVEL" ]; then if [ -n "$BUILD_UPDATE_DEVEL" -a -n "$DEVEL_SRCDIR" ]; then
mkdir -p "$DEST" || { eend; return 1; } mkdir -p "$DEST" || { eend; return 1; }
DEST="$DEST/$NAME" DEST="$DEST/$NAME"
@ -831,14 +833,26 @@ function build_update_apps() {
setx cwd=pwd setx cwd=pwd
cd "$DEST" cd "$DEST"
git fetch --all -p -f || { eend; return 1; } git fetch --all -p -f || { eend; return 1; }
git reset --hard "$ORIGIN/$BRANCH" || { eend; return 1; } if [ "${BRANCH#^}" != "$BRANCH" ]; then
git reset --hard "${BRANCH#^}" || { cd "$cwd"; eend; return 1; }
else
git reset --hard "$ORIGIN/$BRANCH" || { cd "$cwd"; eend; return 1; }
fi
cd "$cwd" cd "$cwd"
else else
# reliquat mode devel? # reliquat mode devel?
[ -d "$DEST" ] && rm -rf "$DEST" [ -d "$DEST" ] && rm -rf "$DEST"
# clonage initial # clonage initial
estep "Clonage $URL:$BRANCH --> $DEST" estep "Clonage $URL:$BRANCH --> $DEST"
git clone -o "$ORIGIN" -b "$BRANCH" "$URL" "$DEST" || { eend; return 1; } if [ "${BRANCH#^}" != "$BRANCH" ]; then
git clone -o "$ORIGIN" "$URL" "$DEST" || { eend; return 1; }
setx cwd=pwd
cd "$DEST"
git reset --hard "${BRANCH#^}" || { cd "$cwd"; eend; return 1; }
cd "$cwd"
else
git clone -o "$ORIGIN" -b "$BRANCH" "$URL" "$DEST" || { eend; return 1; }
fi
fi fi
if [ -z "$TYPE" ]; then if [ -z "$TYPE" ]; then
@ -965,6 +979,27 @@ function build_update_apps() {
eend eend
} }
function build_merge_env() {
# si les fichiers .env-all et/ou .env-machine-$MACHINE existent, où $MACHINE
# est la machine actuellement sélectionnée, alors les merger pour créer le
# fichier .env
# Si DOCKER_MACHINE n'est pas défini, prendre par défaut HOSTNAME
local machine="${DOCKER_MACHINE_NAME:-$HOSTNAME}"
local shared=.shared_env for_machine=".${machine}_env"
[ -f "$shared" -o -f "$for_machine" ] || return 0
echo >.env "## fichier auto-généré. ne pas modifier ##"
if [ -f "$shared" ]; then
echo "## $shared ##" >>.env
cat "$shared" >>.env
fi
if [ -f "$for_machine" ]; then
echo "## $for_machine ##" >>.env
cat "$for_machine" >>.env
fi
}
function initialize_build_env() { function initialize_build_env() {
CTXDIR=. CTXDIR=.
NAME= NAME=
@ -993,6 +1028,7 @@ function default_compose_build() {
"${replace_env_args[@]}" "${env_args[@]}" \ "${replace_env_args[@]}" "${env_args[@]}" \
build \ build \
${NO_CACHE:+--no-cache} \ ${NO_CACHE:+--no-cache} \
${PULL:+--pull} \
"${replace_build_args[@]}" "${build_args[@]}" \ "${replace_build_args[@]}" "${build_args[@]}" \
"$@" "$@"
} }
@ -1003,6 +1039,7 @@ function default_docker_build() {
done done
${FAKE:+qvals} "$DOCKER" build \ ${FAKE:+qvals} "$DOCKER" build \
${NO_CACHE:+--no-cache} \ ${NO_CACHE:+--no-cache} \
${PULL:+--pull} \
"${replace_env_args[@]}" "${env_args[@]}" \ "${replace_env_args[@]}" "${env_args[@]}" \
"${replace_build_args[@]}" "${build_args[@]}" \ "${replace_build_args[@]}" "${build_args[@]}" \
"$@" "$CTXDIR" "$@" "$CTXDIR"
@ -1036,6 +1073,7 @@ function auto_build() {
compose_set_env_args compose_set_env_args
update_build_env "${bargs[@]}" update_build_env "${bargs[@]}"
build_update_apps || return 1 build_update_apps || return 1
build_merge_env
compose_build "$@" compose_build "$@"
elif [ -f Dockerfile ]; then elif [ -f Dockerfile ]; then
docker_parse_env_args docker_parse_env_args
@ -1050,6 +1088,7 @@ function auto_build() {
done done
${FAKE:+qvals} "$DOCKER" build \ ${FAKE:+qvals} "$DOCKER" build \
${NO_CACHE:+--no-cache} \ ${NO_CACHE:+--no-cache} \
${PULL:+--pull} \
"${replace_build_args[@]}" "$@" "${replace_build_args[@]}" "$@"
fi fi
} }
@ -1939,6 +1978,7 @@ FAKE=
VARS=() VARS=()
FORCE= FORCE=
NO_CACHE= NO_CACHE=
PULL=
HOST= HOST=
WITH_REGISTRY_AUTH=1 WITH_REGISTRY_AUTH=1
update_apps_mode=ub update_apps_mode=ub
@ -1960,6 +2000,7 @@ args=(
-e:,--build-arg:,--env: VARS -e:,--build-arg:,--env: VARS
-f,--force FORCE=1 -f,--force FORCE=1
-j,--no-cache NO_CACHE=1 -j,--no-cache NO_CACHE=1
-U,--pull PULL=1
-h:,--host: HOST= -h:,--host: HOST=
-g,--ug,--no-update-apps update_apps_mode=b -g,--ug,--no-update-apps update_apps_mode=b
-u,--uu,--update-apps-only update_apps_mode=u -u,--uu,--update-apps-only update_apps_mode=u

View File

@ -7,35 +7,40 @@ if [ -n "$UTOOLS_DOCKER_ALIASES" ]; then
# alias dm=docker-machine # alias dm=docker-machine
#fi #fi
function dm() { function dm() {
if [ "$1" == use -a -n "$2" -a -f ~/etc/default/dk ]; then case "$1" in
# chercher les aliases éventuels use|ssh)
local machine="$2"; shift; shift if [ -n "$2" -a -f ~/etc/default/dk ]; then
machine="$( # chercher les aliases éventuels
CLUSTERDIRS=() local cmd="$1"; shift
DM_ALIASES=() local machine="$1"; shift
source ~/etc/default/dk machine="$(
for alias_machine in "${DM_ALIASES[@]}"; do CLUSTERDIRS=()
if [ "${alias_machine%%:*}" == "$machine" ]; then DM_ALIASES=()
echo "${alias_machine#*:}" source ~/etc/default/dk
exit for alias_machine in "${DM_ALIASES[@]}"; do
fi if [ "${alias_machine%%:*}" == "$machine" ]; then
done echo "${alias_machine#*:}"
for clusterdir in "${CLUSTERDIRS[@]}"; do exit
if [ -f "$clusterdir/0config/configure.conf" ]; then
DM_ALIASES=()
source "$clusterdir/0config/configure.conf"
for alias_machine in "${DM_ALIASES[@]}"; do
if [ "${alias_machine%%:*}" == "$machine" ]; then
echo "${alias_machine#*:}"
exit
fi
done
fi
done
echo "$machine"
)"
set -- use "$machine" "$@"
fi fi
done
for clusterdir in "${CLUSTERDIRS[@]}"; do
if [ -f "$clusterdir/0config/configure.conf" ]; then
DM_ALIASES=()
source "$clusterdir/0config/configure.conf"
for alias_machine in "${DM_ALIASES[@]}"; do
if [ "${alias_machine%%:*}" == "$machine" ]; then
echo "${alias_machine#*:}"
exit
fi
done
fi
done
echo "$machine"
)"
set -- "$cmd" "$machine" "$@"
fi
;;
esac
if [ "$DOCKER_MACHINE_WRAPPED" == true ]; then if [ "$DOCKER_MACHINE_WRAPPED" == true ]; then
__docker_machine_wrapper "$@" __docker_machine_wrapper "$@"
else else

View File

@ -86,7 +86,13 @@ function generate_sql() {
check_overwrite "$1" || return check_overwrite "$1" || return
estep "$(ppath "$file")" estep "$(ppath "$file")"
echo >"$file" "-- -*- coding: $encoding ${mode:+mode: $mode }-*- vim:sw=4:sts=4:et:ai:si:sta:fenc=$encoding" echo >"$file" "\
-- -*- coding: $encoding ${mode:+mode: $mode }-*- vim:sw=4:sts=4:et:ai:si:sta:fenc=$encoding
-- @database xxx
start transaction;
commit;"
[ -n "$2" ] && array_add "$2" "$file" [ -n "$2" ] && array_add "$2" "$file"
return 0 return 0
} }

View File

@ -8,24 +8,27 @@ urequire base sysinfos
################################################################################ ################################################################################
# versions installées sur le système # versions installées sur le système
JAVA_VMS13=(); JAVA_HOMES13=() JAVA_VMS1_3=(); JAVA_HOMES1_3=()
JAVA_VMS14=(); JAVA_HOMES14=() JAVA_VMS1_4=(); JAVA_HOMES1_4=()
JAVA_VMS5=(); JAVA_HOMES5=() JAVA_VMS5=(); JAVA_HOMES5=()
JAVA_VMS6=(); JAVA_HOMES6=() JAVA_VMS6=(); JAVA_HOMES6=()
JAVA_VMS7=(); JAVA_HOMES7=() JAVA_VMS7=(); JAVA_HOMES7=()
JAVA_VMS8=(); JAVA_HOMES8=() JAVA_VMS8=(); JAVA_HOMES8=()
JAVA_VMS11=(); JAVA_HOMES11=()
# versions locales 32 bits # versions locales 32 bits
JAVA32_VMS13=(); JAVA32_HOMES13=() JAVA32_VMS1_3=(); JAVA32_HOMES1_3=()
JAVA32_VMS14=(); JAVA32_HOMES14=() JAVA32_VMS1_4=(); JAVA32_HOMES1_4=()
JAVA32_VMS5=(); JAVA32_HOMES5=() JAVA32_VMS5=(); JAVA32_HOMES5=()
JAVA32_VMS6=(); JAVA32_HOMES6=() JAVA32_VMS6=(); JAVA32_HOMES6=()
JAVA32_VMS7=(); JAVA32_HOMES7=() JAVA32_VMS7=(); JAVA32_HOMES7=()
JAVA32_VMS8=(); JAVA32_HOMES8=() JAVA32_VMS8=(); JAVA32_HOMES8=()
JAVA32_VMS11=(); JAVA32_HOMES11=()
# versions locales 64 bits # versions locales 64 bits
JAVA64_VMS5=(); JAVA64_HOMES5=() JAVA64_VMS5=(); JAVA64_HOMES5=()
JAVA64_VMS6=(); JAVA64_HOMES6=() JAVA64_VMS6=(); JAVA64_HOMES6=()
JAVA64_VMS7=(); JAVA64_HOMES7=() JAVA64_VMS7=(); JAVA64_HOMES7=()
JAVA64_VMS8=(); JAVA64_HOMES8=() JAVA64_VMS8=(); JAVA64_HOMES8=()
JAVA64_VMS11=(); JAVA64_HOMES11=()
# version sélectionnée # version sélectionnée
SELECTED_JAVA_VM=; SELECTED_JAVA_HOME= SELECTED_JAVA_VM=; SELECTED_JAVA_HOME=
SELECTED_JAVA=; SELECTED_JAVAC= SELECTED_JAVA=; SELECTED_JAVAC=
@ -37,7 +40,7 @@ function __java_add() {
function __java_compute_vms() { function __java_compute_vms() {
# calculer la liste de VMs disponibles et initialiser les tableaux # calculer la liste de VMs disponibles et initialiser les tableaux
# JAVA{,32,64}_{VMS,HOMES}{13,14,5,6,7,8} # JAVA{,32,64}_{VMS,HOMES}{1_3,1_4,5,6,7,8}
[ -z "$__COMPUTED_JAVA_VMS" ] || return [ -z "$__COMPUTED_JAVA_VMS" ] || return
local vms vm v local vms vm v
@ -48,8 +51,8 @@ function __java_compute_vms() {
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
v="${vm#sun-jdk-}" v="${vm#sun-jdk-}"
if [ "$v" == 1.4 ]; then if [ "$v" == 1.4 ]; then
__java_add VMS14 "$vm" 32 __java_add VMS1_4 "$vm" 32
__java_add HOMES14 "$HOME/opt/jvm32/$vm" 32 __java_add HOMES1_4 "$HOME/opt/jvm32/$vm" 32
elif [ "$v" == 1.5 ]; then elif [ "$v" == 1.5 ]; then
__java_add VMS5 "$vm" 32 __java_add VMS5 "$vm" 32
__java_add HOMES5 "$HOME/opt/jvm32/$vm" 32 __java_add HOMES5 "$HOME/opt/jvm32/$vm" 32
@ -66,8 +69,8 @@ function __java_compute_vms() {
done done
array_from_lines vms "$(list_dirs "$HOME/opt/jvm32" "j2sdk1.4.2*" | LANG=C sort -r)" array_from_lines vms "$(list_dirs "$HOME/opt/jvm32" "j2sdk1.4.2*" | LANG=C sort -r)"
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
__java_add VMS14 "$vm" 32 __java_add VMS1_4 "$vm" 32
__java_add HOMES14 "$HOME/opt/jvm32/$vm" 32 __java_add HOMES1_4 "$HOME/opt/jvm32/$vm" 32
done done
array_from_lines vms "$(list_dirs "$HOME/opt/jvm32" "jdk1.5.*" | LANG=C sort -r)" array_from_lines vms "$(list_dirs "$HOME/opt/jvm32" "jdk1.5.*" | LANG=C sort -r)"
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
@ -106,6 +109,14 @@ function __java_compute_vms() {
__java_add HOMES8 "$HOME/opt/jvm64/$vm" 64 __java_add HOMES8 "$HOME/opt/jvm64/$vm" 64
fi fi
done done
array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk11)"
for vm in "${vms[@]}"; do
v="${vm#jdk}"
if [ "$v" == 11 ]; then
__java_add VMS11 "$vm" 64
__java_add HOMES11 "$HOME/opt/jvm64/$vm" 64
fi
done
array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" "jdk1.5.*" | LANG=C sort -r)" array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" "jdk1.5.*" | LANG=C sort -r)"
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
__java_add VMS5 "$vm" 64 __java_add VMS5 "$vm" 64
@ -126,13 +137,18 @@ function __java_compute_vms() {
__java_add VMS8 "$vm" 64 __java_add VMS8 "$vm" 64
__java_add HOMES8 "$HOME/opt/jvm64/$vm" 64 __java_add HOMES8 "$HOME/opt/jvm64/$vm" 64
done done
array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" "jdk-11.*" | LANG=C sort -r)"
for vm in "${vms[@]}"; do
__java_add VMS11 "$vm" 64
__java_add HOMES11 "$HOME/opt/jvm64/$vm" 64
done
# Puis chercher dans les JVMs installées manuellement dans ~/opt # Puis chercher dans les JVMs installées manuellement dans ~/opt
array_from_lines vms "$(list_dirs "$HOME/opt" "sun-jdk-*")" array_from_lines vms "$(list_dirs "$HOME/opt" "sun-jdk-*")"
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
v="${vm#sun-jdk-}" v="${vm#sun-jdk-}"
if [ "$v" == 1.4 ]; then if [ "$v" == 1.4 ]; then
__java_add VMS14 "$vm" __java_add VMS1_4 "$vm"
__java_add HOMES14 "$HOME/opt/$vm" __java_add HOMES1_4 "$HOME/opt/$vm"
elif [ "$v" == 1.5 ]; then elif [ "$v" == 1.5 ]; then
__java_add VMS5 "$vm" __java_add VMS5 "$vm"
__java_add HOMES5 "$HOME/opt/$vm" __java_add HOMES5 "$HOME/opt/$vm"
@ -147,10 +163,18 @@ function __java_compute_vms() {
__java_add HOMES8 "$HOME/opt/$vm" __java_add HOMES8 "$HOME/opt/$vm"
fi fi
done done
array_from_lines vms "$(list_dirs "$HOME/opt" jdk11)"
for vm in "${vms[@]}"; do
v="${vm#jdk}"
if [ "$v" == 11 ]; then
__java_add VMS11 "$vm"
__java_add HOMES11 "$HOME/opt/$vm"
fi
done
array_from_lines vms "$(list_dirs "$HOME/opt" "j2sdk1.4.2*" | LANG=C sort -r)" array_from_lines vms "$(list_dirs "$HOME/opt" "j2sdk1.4.2*" | LANG=C sort -r)"
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
__java_add VMS14 "$vm" __java_add VMS1_4 "$vm"
__java_add HOMES14 "$HOME/opt/$vm" __java_add HOMES1_4 "$HOME/opt/$vm"
done done
array_from_lines vms "$(list_dirs "$HOME/opt" "jdk1.5.*" | LANG=C sort -r)" array_from_lines vms "$(list_dirs "$HOME/opt" "jdk1.5.*" | LANG=C sort -r)"
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
@ -172,13 +196,18 @@ function __java_compute_vms() {
__java_add VMS8 "$vm" __java_add VMS8 "$vm"
__java_add HOMES8 "$HOME/opt/$vm" __java_add HOMES8 "$HOME/opt/$vm"
done done
array_from_lines vms "$(list_dirs "$HOME/opt" "jdk-11.*" | LANG=C sort -r)"
for vm in "${vms[@]}"; do
__java_add VMS11 "$vm"
__java_add HOMES11 "$HOME/opt/$vm"
done
# Puis chercher dans les JVMs installées manuellement dans /opt # Puis chercher dans les JVMs installées manuellement dans /opt
array_from_lines vms "$(list_dirs "/opt" "sun-jdk-*")" array_from_lines vms "$(list_dirs "/opt" "sun-jdk-*")"
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
v="${vm#sun-jdk-}" v="${vm#sun-jdk-}"
if [ "$v" == 1.4 ]; then if [ "$v" == 1.4 ]; then
__java_add VMS14 "$vm" __java_add VMS1_4 "$vm"
__java_add HOMES14 "/opt/$vm" __java_add HOMES1_4 "/opt/$vm"
elif [ "$v" == 1.5 ]; then elif [ "$v" == 1.5 ]; then
__java_add VMS5 "$vm" __java_add VMS5 "$vm"
__java_add HOMES5 "/opt/$vm" __java_add HOMES5 "/opt/$vm"
@ -193,10 +222,18 @@ function __java_compute_vms() {
__java_add HOMES8 "/opt/$vm" __java_add HOMES8 "/opt/$vm"
fi fi
done done
array_from_lines vms "$(list_dirs "/opt" jdk11)"
for vm in "${vms[@]}"; do
v="${vm#jdk}"
if [ "$v" == 11 ]; then
__java_add VMS11 "$vm"
__java_add HOMES11 "/opt/$vm"
fi
done
array_from_lines vms "$(list_dirs "/opt" "j2sdk1.4.2*" | LANG=C sort -r)" array_from_lines vms "$(list_dirs "/opt" "j2sdk1.4.2*" | LANG=C sort -r)"
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
__java_add VMS14 "$vm" __java_add VMS1_4 "$vm"
__java_add HOMES14 "/opt/$vm" __java_add HOMES1_4 "/opt/$vm"
done done
array_from_lines vms "$(list_dirs "/opt" "jdk1.5.*" | LANG=C sort -r)" array_from_lines vms "$(list_dirs "/opt" "jdk1.5.*" | LANG=C sort -r)"
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
@ -218,6 +255,11 @@ function __java_compute_vms() {
__java_add VMS8 "$vm" __java_add VMS8 "$vm"
__java_add HOMES8 "/opt/$vm" __java_add HOMES8 "/opt/$vm"
done done
array_from_lines vms "$(list_dirs "/opt" "jdk-11.*" | LANG=C sort -r)"
for vm in "${vms[@]}"; do
__java_add VMS11 "$vm"
__java_add HOMES11 "/opt/$vm"
done
# Puis chercher dans les JVMs installées par le système dans # Puis chercher dans les JVMs installées par le système dans
# /usr/lib/jvm # /usr/lib/jvm
if check_sysinfos -d gentoo; then if check_sysinfos -d gentoo; then
@ -226,8 +268,8 @@ function __java_compute_vms() {
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
v="${vm#sun-jdk-}" v="${vm#sun-jdk-}"
if [ "$v" == 1.4 ]; then if [ "$v" == 1.4 ]; then
__java_add VMS14 "$vm" __java_add VMS1_4 "$vm"
__java_add HOMES14 "/usr/lib/jvm/$vm" __java_add HOMES1_4 "/usr/lib/jvm/$vm"
elif [ "$v" == 1.5 ]; then elif [ "$v" == 1.5 ]; then
__java_add VMS5 "$vm" __java_add VMS5 "$vm"
__java_add HOMES5 "/usr/lib/jvm/$vm" __java_add HOMES5 "/usr/lib/jvm/$vm"
@ -246,12 +288,15 @@ function __java_compute_vms() {
# sur debian # sur debian
array_from_lines vms "$(list_dirs /usr/lib/jvm)" array_from_lines vms "$(list_dirs /usr/lib/jvm)"
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
v="${vm%-sun}" v="$vm"
v="${v%-sun}"
v="${v%-amd64}"
v="${v%-openjdk}"
v="${v#java-}" v="${v#java-}"
v="${v#j2sdk}" v="${v#j2sdk}"
if [ "$v" == 1.4 ]; then if [ "$v" == 1.4 ]; then
__java_add VMS14 "$vm" __java_add VMS1_4 "$vm"
__java_add HOMES14 "/usr/lib/jvm/$vm" __java_add HOMES1_4 "/usr/lib/jvm/$vm"
elif [ "$v" == 1.5 -o "$v" == 1.5.0 ]; then elif [ "$v" == 1.5 -o "$v" == 1.5.0 ]; then
__java_add VMS5 "$vm" __java_add VMS5 "$vm"
__java_add HOMES5 "/usr/lib/jvm/$vm" __java_add HOMES5 "/usr/lib/jvm/$vm"
@ -264,11 +309,14 @@ function __java_compute_vms() {
elif [ "$v" == 8 -o "$v" == 1.8 ]; then elif [ "$v" == 8 -o "$v" == 1.8 ]; then
__java_add VMS8 "$vm" __java_add VMS8 "$vm"
__java_add HOMES8 "/usr/lib/jvm/$vm" __java_add HOMES8 "/usr/lib/jvm/$vm"
elif [ "$v" == 11 ]; then
__java_add VMS11 "$vm"
__java_add HOMES11 "/usr/lib/jvm/$vm"
fi fi
done done
if [ -d /usr/lib/j2sdk1.4-sun ]; then if [ -d /usr/lib/j2sdk1.4-sun ]; then
__java_add VMS14 j2sdk1.4-sun __java_add VMS1_4 j2sdk1.4-sun
__java_add HOMES14 /usr/lib/j2sdk1.4-sun __java_add HOMES1_4 /usr/lib/j2sdk1.4-sun
fi fi
elif check_sysinfos -d redhatlike; then elif check_sysinfos -d redhatlike; then
# XXX sur redhat # XXX sur redhat
@ -276,12 +324,12 @@ function __java_compute_vms() {
fi fi
elif check_sysinfos -s macosx; then elif check_sysinfos -s macosx; then
if [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/1.3" ]; then if [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/1.3" ]; then
__java_add VMS13 "1.3" __java_add VMS1_3 "1.3"
__java_add HOMES13 "/System/Library/Frameworks/JavaVM.framework/Versions/1.3/Home" __java_add HOMES1_3 "/System/Library/Frameworks/JavaVM.framework/Versions/1.3/Home"
fi fi
if [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/1.4" ]; then if [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/1.4" ]; then
__java_add VMS14 "1.4" __java_add VMS1_4 "1.4"
__java_add HOMES14 "/System/Library/Frameworks/JavaVM.framework/Versions/1.4/Home" __java_add HOMES1_4 "/System/Library/Frameworks/JavaVM.framework/Versions/1.4/Home"
fi fi
if [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/1.5" ]; then if [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/1.5" ]; then
__java_add VMS5 "1.5" __java_add VMS5 "1.5"
@ -305,7 +353,7 @@ function __java_compute_vms() {
function __java_dump_vms() { function __java_dump_vms() {
local v b i vms homes local v b i vms homes
for v in 13 14 5 6 7 8; do for v in 1_3 1_4 5 6 7 8 11; do
for b in "" 32 64; do for b in "" 32 64; do
vms="JAVA${b}_VMS${v}[@]"; vms=("${!vms}") vms="JAVA${b}_VMS${v}[@]"; vms=("${!vms}")
homes="JAVA${b}_HOMES${v}[@]"; homes=("${!homes}") homes="JAVA${b}_HOMES${v}[@]"; homes=("${!homes}")
@ -336,7 +384,7 @@ function __java_select_vms() {
} }
function __java_select() { function __java_select() {
# Sélectionner la version de java $1 (qui peut être 13, 14, 5, 6, 7 ou 8) # Sélectionner la version de java $1 (qui peut être 1_3, 1_4, 5, 6, 7, 8 ou 11)
# Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la # Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la
# version 32bits ou 64 bits. Sinon, la version sélectionnée peut être 32bits # version 32bits ou 64 bits. Sinon, la version sélectionnée peut être 32bits
# ou 64bits selon ce qui est disponible. # ou 64bits selon ce qui est disponible.
@ -380,8 +428,8 @@ function __java_select() {
function __java_select_default() { function __java_select_default() {
# Sélectionner la version de java par défaut. Si JAVA_HOME est défini, # Sélectionner la version de java par défaut. Si JAVA_HOME est défini,
# prendre cette valeur. Sinon, essayer dans l'ordre 5, 6, 7, 8, puis 14 # prendre cette valeur. Sinon, essayer dans l'ordre 5, 6, 7, 8, 11 puis 1_4
# la version 13 n'est jamais sélectionnée automatiquement # la version 1_3 n'est jamais sélectionnée automatiquement
if [ -n "$JAVA_HOME" ]; then if [ -n "$JAVA_HOME" ]; then
export JAVA_HOME # s'assurer que cette variable est exportée export JAVA_HOME # s'assurer que cette variable est exportée
export JAVA="$JAVA_HOME/bin/java" export JAVA="$JAVA_HOME/bin/java"
@ -392,7 +440,7 @@ function __java_select_default() {
return 0 return 0
fi fi
local vm local vm
for vm in 5 6 7 8 14; do for vm in 5 6 7 8 11 1_4; do
__java_select "$vm" && return 0 __java_select "$vm" && return 0
done done
return 1 return 1
@ -400,39 +448,44 @@ function __java_select_default() {
function select_java() { function select_java() {
# sélectionner la version *minimum* de java correspondant à $1 # sélectionner la version *minimum* de java correspondant à $1
# $1== 1.3|1.3+|1.4|1.4+|1.5|1.5+|1.6|1.6+|1.7|1.7+|1.8|1.8+ # $1 == 1.3|1.3+|1.4|1.4+|1.5|1.5+|1.6|1.6+|1.7|1.7+|1.8|1.8+|11|11+
# Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la # Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la
# version 32bits ou 64 bits # version 32bits ou 64 bits
local v vms homes local v vms homes
case "$1" in case "$1" in
1.3|1.3+|13|13+) 1.3|1.3+)
for v in 13 14 5 6 7 8; do for v in 1_3 1_4 5 6 7 8 11; do
__java_select "$v" "$2" && return 0 __java_select "$v" "$2" && return 0
done done
;; ;;
1.4|1.4+|14|14+) 1.4|1.4+)
for v in 14 5 6 7 8; do for v in 1_4 5 6 7 8 11; do
__java_select "$v" "$2" && return 0 __java_select "$v" "$2" && return 0
done done
;; ;;
1.5|1.5+|5|5+) 1.5|1.5+|5|5+)
for v in 5 6 7 8; do for v in 5 6 7 8 11; do
__java_select "$v" "$2" && return 0 __java_select "$v" "$2" && return 0
done done
;; ;;
1.6|1.6+|6|6+) 1.6|1.6+|6|6+)
for v in 6 7 8; do for v in 6 7 8 11; do
__java_select "$v" "$2" && return 0 __java_select "$v" "$2" && return 0
done done
;; ;;
1.7|1.7+|7|7+) 1.7|1.7+|7|7+)
for v in 7 8; do for v in 7 8 11; do
__java_select "$v" "$2" && return 0 __java_select "$v" "$2" && return 0
done done
;; ;;
1.8|1.8+|8|8+) 1.8|1.8+|8|8+)
for v in 8; do for v in 8 11; do
__java_select "$v" "$2" && return 0
done
;;
11|11+)
for v in 11; do
__java_select "$v" "$2" && return 0 __java_select "$v" "$2" && return 0
done done
;; ;;
@ -442,26 +495,26 @@ function select_java() {
function select_java_exact() { function select_java_exact() {
# sélectionner la version *exacte* de java correspondant à $1 # sélectionner la version *exacte* de java correspondant à $1
# $1== 1.3|1.4|1.5|1.6|1.7|1.8 pour une correspondance exacte # $1 == 1.3|1.4|1.5|1.6|1.7|1.8|11 pour une correspondance exacte
# $1== 1.3+|1.4+|1.5+|1.6+|1.7+|1.8+ pour une version minimum # $1 == 1.3+|1.4+|1.5+|1.6+|1.7+|1.8+|11+ pour une version minimum
# Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la # Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la
# version 32bits ou 64 bits # version 32bits ou 64 bits
local v vms homes local v vms homes
case "$1" in case "$1" in
1.3|13) 1.3)
__java_select 13 && return 0 __java_select 1_3 && return 0
;; ;;
1.3+|13+) 1.3+)
for v in 13 14 5 6 7 8; do for v in 1_3 1_4 5 6 7 8 11; do
__java_select "$v" "$2" && return 0 __java_select "$v" "$2" && return 0
done done
;; ;;
1.4|14) 1.4)
__java_select 14 && return 0 __java_select 1_4 && return 0
;; ;;
1.4+|14+) 1.4+)
for v in 14 5 6 7 8; do for v in 1_4 5 6 7 8 11; do
__java_select "$v" "$2" && return 0 __java_select "$v" "$2" && return 0
done done
;; ;;
@ -469,7 +522,7 @@ function select_java_exact() {
__java_select 5 "$2" && return 0 __java_select 5 "$2" && return 0
;; ;;
1.5+|5+) 1.5+|5+)
for v in 5 6 7 8; do for v in 5 6 7 8 11; do
__java_select "$v" "$2" && return 0 __java_select "$v" "$2" && return 0
done done
;; ;;
@ -477,7 +530,7 @@ function select_java_exact() {
__java_select 6 "$2" && return 0 __java_select 6 "$2" && return 0
;; ;;
1.6+|6+) 1.6+|6+)
for v in 6 7 8; do for v in 6 7 8 11; do
__java_select "$v" "$2" && return 0 __java_select "$v" "$2" && return 0
done done
;; ;;
@ -485,7 +538,7 @@ function select_java_exact() {
__java_select 7 "$2" && return 0 __java_select 7 "$2" && return 0
;; ;;
1.7+|7+) 1.7+|7+)
for v in 7 8; do for v in 7 8 11; do
__java_select "$v" "$2" && return 0 __java_select "$v" "$2" && return 0
done done
;; ;;
@ -493,7 +546,15 @@ function select_java_exact() {
__java_select 8 "$2" && return 0 __java_select 8 "$2" && return 0
;; ;;
1.8+|8+) 1.8+|8+)
for v in 8; do for v in 8 11; do
__java_select "$v" "$2" && return 0
done
;;
11)
__java_select 11 "$2" && return 0
;;
11+)
for v in 11; do
__java_select "$v" "$2" && return 0 __java_select "$v" "$2" && return 0
done done
;; ;;
@ -505,9 +566,9 @@ function select_java_any() {
# Sélectionner la version exacte de java correspondant aux arguments, dans # Sélectionner la version exacte de java correspondant aux arguments, dans
# l'ordre, jusqu'à ce qu'un argument corresponde. DEFAULT correspond à la # l'ordre, jusqu'à ce qu'un argument corresponde. DEFAULT correspond à la
# valeur actuelle de JAVA_HOME, si elle est définie. # valeur actuelle de JAVA_HOME, si elle est définie.
# Si aucun argument n'est défini, on assume "DEFAULT 5 6 7 8 1.4" # Si aucun argument n'est défini, on assume "DEFAULT 5 6 7 8 11 1.4"
local v local v
[ -n "$*" ] || set -- DEFAULT 5 6 7 8 1.4 [ -n "$*" ] || set -- DEFAULT 5 6 7 8 11 1.4
for v in "$@"; do for v in "$@"; do
if [ "$v" == DEFAULT ]; then if [ "$v" == DEFAULT ]; then
if [ -n "$JAVA_HOME" ]; then if [ -n "$JAVA_HOME" ]; then

View File

@ -28,8 +28,8 @@ debianlike_SYSVERS=()
debian_SYSVERS=(buster stretch jessie wheezy squeeze lenny etch) debian_SYSVERS=(buster stretch jessie wheezy squeeze lenny etch)
ubuntu_SYSVERS=(oneiric natty maverick lucid karmic jaunty intrepid hardy) ubuntu_SYSVERS=(oneiric natty maverick lucid karmic jaunty intrepid hardy)
redhatlike_SYSVERS=() redhatlike_SYSVERS=()
ol_SYSVERS=(ol7 ol6 redhat7 redhat6) ol_SYSVERS=(ol8 ol7 ol6 redhat8 redhat7 redhat6)
rhel_SYSVERS=(rhel7 rhel6 rhel5 rhel4 redhat7 redhat6 redhat5 redhat4) rhel_SYSVERS=(rhel8 rhel7 rhel6 rhel5 rhel4 redhat8 redhat7 redhat6 redhat5 redhat4)
fedora_SYSVERS=(fedora14 fedora13 fedora12 fedora11) fedora_SYSVERS=(fedora14 fedora13 fedora12 fedora11)
centos_SYSVERS=(centos7 centos6 centos5 centos4 redhat7 redhat6 redhat5 redhat4) centos_SYSVERS=(centos7 centos6 centos5 centos4 redhat7 redhat6 redhat5 redhat4)
suse_SYSVERS=() suse_SYSVERS=()
@ -157,6 +157,7 @@ function __compute_sysinfos() {
elif [ -n "$oracle_release" ]; then elif [ -n "$oracle_release" ]; then
MYSYSDIST=(ol rhel redhatlike) MYSYSDIST=(ol rhel redhatlike)
case "$oracle_release" in case "$oracle_release" in
Oracle*Linux*release\ 8*) MYSYSVER=(ol8 rhel8 redhat8);;
Oracle*Linux*release\ 7*) MYSYSVER=(ol7 rhel7 redhat7);; Oracle*Linux*release\ 7*) MYSYSVER=(ol7 rhel7 redhat7);;
Oracle*Linux*release\ 6*) MYSYSVER=(ol6 rhel6 redhat6);; Oracle*Linux*release\ 6*) MYSYSVER=(ol6 rhel6 redhat6);;
esac esac
@ -172,10 +173,12 @@ function __compute_sysinfos() {
Fedora*13*) MYSYSVER=(fedora13);; Fedora*13*) MYSYSVER=(fedora13);;
Fedora*12*) MYSYSVER=(fedora12);; Fedora*12*) MYSYSVER=(fedora12);;
Fedora*11*) MYSYSVER=(fedora11);; Fedora*11*) MYSYSVER=(fedora11);;
Red*Hat*Enterprise*Linux*release\ 8*) MYSYSVER=(rhel8 redhat8);;
Red*Hat*Enterprise*Linux*release\ 7*) MYSYSVER=(rhel7 redhat7);; Red*Hat*Enterprise*Linux*release\ 7*) MYSYSVER=(rhel7 redhat7);;
Red*Hat*Enterprise*Linux*release\ 6*) MYSYSVER=(rhel6 redhat6);; Red*Hat*Enterprise*Linux*release\ 6*) MYSYSVER=(rhel6 redhat6);;
Red*Hat*Enterprise*Linux*release\ 5*) MYSYSVER=(rhel5 redhat5);; Red*Hat*Enterprise*Linux*release\ 5*) MYSYSVER=(rhel5 redhat5);;
Red*Hat*Enterprise*Linux*release\ 4*) MYSYSVER=(rhel4 redhat4);; Red*Hat*Enterprise*Linux*release\ 4*) MYSYSVER=(rhel4 redhat4);;
CentOS*release\ 8*) MYSYSVER=(centos8 redhat8);;
CentOS*release\ 7*) MYSYSVER=(centos7 redhat7);; CentOS*release\ 7*) MYSYSVER=(centos7 redhat7);;
CentOS*release\ 6*) MYSYSVER=(centos6 redhat6);; CentOS*release\ 6*) MYSYSVER=(centos6 redhat6);;
CentOS*release\ 5*) MYSYSVER=(centos5 redhat5);; CentOS*release\ 5*) MYSYSVER=(centos5 redhat5);;

27
pff
View File

@ -30,6 +30,7 @@ PFFCONFVARS=(
"MKDIRS//Répertoires qui doivent toujours exister" "MKDIRS//Répertoires qui doivent toujours exister"
"FILTERS//Filtres appliqués aux fichiers lors de l'intégration, de la forme 'filespec:filter'. Cf la doc pour le détail du format" "FILTERS//Filtres appliqués aux fichiers lors de l'intégration, de la forme 'filespec:filter'. Cf la doc pour le détail du format"
"NOMERGES=//Fichiers qu'il ne faut pas chercher à fusionner. Cf la doc pour le détail du format" "NOMERGES=//Fichiers qu'il ne faut pas chercher à fusionner. Cf la doc pour le détail du format"
"NOUPSTREAM=//Indiquer qu'il n'y a pas de fichiers upstream. pff est uniquement utilisé pour gérer des profils de fichiers"
) )
if [ "$#" -eq 1 -a "$1" == --nutools-makelinks ]; then if [ "$#" -eq 1 -a "$1" == --nutools-makelinks ]; then
@ -190,6 +191,13 @@ pff:
que les fichiers ayant l'extension .c situés dans le répertoire du que les fichiers ayant l'extension .c situés dans le répertoire du
projet projet
NOUPSTREAM -- indiquer qu'il n'y a pas de distribution upstream ni de
fichiers origine. pff est alors uniquement utilisé pour gérer des
profils de fichier.
Pour le moment, la seule différence est que le mode des fichiers de
pff/Base n'est pas forcé à 0444. Ainsi, ces fichiers sont traités au
même titre que ceux du répertoire pff/Common
COMMANDES / OPTIONS COMMANDES / OPTIONS
Les arguments du script dépendent de la commande utilisée. Les commandes Les arguments du script dépendent de la commande utilisée. Les commandes
supportées sont: supportées sont:
@ -571,8 +579,11 @@ function autoinit() {
local pffdir="$1" profile mkdir local pffdir="$1" profile mkdir
[ -d "$pffdir/pff/Current" ] || mkdir -p "$pffdir/pff/Current" [ -d "$pffdir/pff/Current" ] || mkdir -p "$pffdir/pff/Current"
[ -d "$pffdir/pff/Base" ] || mkdir -p "$pffdir/pff/Base" [ -d "$pffdir/pff/Base" ] || mkdir -p "$pffdir/pff/Base"
# tous les fichiers du profil Base doivent être en lecture seule # tous les fichiers du profil Base doivent être en lecture seule, sauf si
find "$pffdir/pff/Base" -type f -perm /222 -exec chmod a-w '{}' + # NOUPSTREAM=1
if [ -z "$NOUPSTREAM" ]; then
find "$pffdir/pff/Base" -type f -perm /222 -exec chmod a-w '{}' +
fi
# Créer les répertoires de MKDIRS # Créer les répertoires de MKDIRS
for mkdir in "${MKDIRS[@]}"; do for mkdir in "${MKDIRS[@]}"; do
mkdir -p "$pffdir/$mkdir" mkdir -p "$pffdir/$mkdir"
@ -1144,7 +1155,7 @@ function patch_cmd() {
setx rfile=get_rfile "$bfile" "$pffdir" setx rfile=get_rfile "$bfile" "$pffdir"
mkdirof "$rfile" mkdirof "$rfile"
cp -a "$bfile" "$rfile" cp -a "$bfile" "$rfile"
chmod +w "$rfile" [ -z "$NOUPSTREAM" ] && chmod +w "$rfile"
done done
git add -A git add -A
[ -n "$(git status --porcelain)" ] && git commit -qm "Base" [ -n "$(git status --porcelain)" ] && git commit -qm "Base"
@ -1249,9 +1260,9 @@ $(qvals eimportant "Sinon, tapez ${COULEUR_ROUGE}Abort${COULEUR_NORMALE} pour ar
etitle "Finaliser intégration de la version $version" etitle "Finaliser intégration de la version $version"
for vlfile in "${vlfiles[@]}"; do for vlfile in "${vlfiles[@]}"; do
bfile="${vlfile%__pv-${version}__}" bfile="${vlfile%__pv-${version}__}"
chmod +w "$bfile" [ -z "$NOUPSTREAM" ] && chmod +w "$bfile"
mv "$vlfile" "$bfile" mv "$vlfile" "$bfile"
chmod a-w "$bfile" [ -z "$NOUPSTREAM" ] && chmod a-w "$bfile"
done done
eop_version=1 eop_version=1
VERSION="$version" VERSION="$version"
@ -1308,7 +1319,9 @@ function add_global__link() {
# Création des liens pour $rfile # Création des liens pour $rfile
mkdirof "$bfile" || return mkdirof "$bfile" || return
mv "$pfile" "$bfile" || return mv "$pfile" "$bfile" || return
chmod a-w "$bfile" || return if [ -z "$NOUPSTREAM" ]; then
chmod a-w "$bfile" || return
fi
[ -L "$pfile" ] || ln -sf "$plink" "$pfile" || return [ -L "$pfile" ] || ln -sf "$plink" "$pfile" || return
mkdirof "$cfile" || return mkdirof "$cfile" || return
[ -L "$cfile" ] || ln -sf "$clink" "$cfile" || return [ -L "$cfile" ] || ln -sf "$clink" "$cfile" || return
@ -1412,7 +1425,7 @@ function add_local__link() {
cp "$Cfile" "$Pfile" cp "$Cfile" "$Pfile"
else else
cp "$bfile" "$Pfile" cp "$bfile" "$Pfile"
chmod +w "$Pfile" [ -z "$NOUPSTREAM" ] && chmod +w "$Pfile"
fi fi
# mettre à jour le profil courant # mettre à jour le profil courant
setx cfile=get_cfile "$pfile" "$pffdir" setx cfile=get_cfile "$pfile" "$pffdir"

View File

@ -613,6 +613,7 @@ result: $result"
elif ask_yesno "Voulez-vous créer le fichier initial .gitattributes?" N; then elif ask_yesno "Voulez-vous créer le fichier initial .gitattributes?" N; then
echo >"$destdir/.gitattributes" "\ echo >"$destdir/.gitattributes" "\
*.zip -delta *.zip -delta
*.jar -delta
*.gz -delta *.gz -delta
*.bz2 -delta *.bz2 -delta
*.whl -delta *.whl -delta