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
* `2ec6c21` support gros doigt de python2 sur les systèmes modernes

View File

@ -33,8 +33,9 @@ function __auto_screen() {
local msgprefix
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
count="$(echo "$screens" | wc -l)"
else
@ -52,14 +53,14 @@ La première session"
if __ask "
$msgprefix sera reconnectée automatiquent dans 2 secondes
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
exec /bin/bash -l
fi
elif __ask "
Une ${COULEUR_VERTE}nouvelle session screen${COULEUR_NORMALE} sera lancée automatiquement dans 2 secondes
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
exec /bin/bash -l
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"
[ ${#args[*]} -gt 0 ] && cmd="$(qvals "${args[@]}"); " || cmd=
cmd="$cmd$(<"$scriptdir/start-screen")"
cmd="$cmd$(<"$scriptdir/Sscreen")"
cmd="'${cmd//\'/\'\\\'\'}'"
for host in "${hosts[@]}"; do
"$ssh" \
"${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
# pas de start-screen en face, le faire à la main
# pas de Sscreen en face, le faire à la main
${exec:+exec} \
"$ssh" "${options[@]}" -t "$host" -- \
/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
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
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
get-profile
@ -273,7 +273,7 @@ OPTIONS générales
Spécifier l'hôte pour la commande systemd-unit
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
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 à
@ -281,9 +281,11 @@ OPTIONS build
forme docker-stack.PROFILE.yml sont utilisés de préférence aux fichiers
docker-compose.PROFILE.yml
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
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
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:
@ -342,6 +344,8 @@ VARIABLES de update-apps.conf
vaut 'origin' par défaut
BRANCH
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
vaut 'composer' par défaut si le fichier composer.json existe à la
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"
}
function docker_set_run_args() {
replace_run_args+=(--env-file "$1")
source "$1"
}
function docker_check_name() {
[ -n "$NAME" ] || die "Vous devez définir NAME dans .build.env"
@ -765,7 +765,9 @@ function build_update_apps() {
fi
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}"
[ -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
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; }
DEST="$DEST/$NAME"
@ -831,14 +833,26 @@ function build_update_apps() {
setx cwd=pwd
cd "$DEST"
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"
else
# reliquat mode devel?
[ -d "$DEST" ] && rm -rf "$DEST"
# clonage initial
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
if [ -z "$TYPE" ]; then
@ -965,6 +979,27 @@ function build_update_apps() {
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() {
CTXDIR=.
NAME=
@ -993,6 +1028,7 @@ function default_compose_build() {
"${replace_env_args[@]}" "${env_args[@]}" \
build \
${NO_CACHE:+--no-cache} \
${PULL:+--pull} \
"${replace_build_args[@]}" "${build_args[@]}" \
"$@"
}
@ -1003,6 +1039,7 @@ function default_docker_build() {
done
${FAKE:+qvals} "$DOCKER" build \
${NO_CACHE:+--no-cache} \
${PULL:+--pull} \
"${replace_env_args[@]}" "${env_args[@]}" \
"${replace_build_args[@]}" "${build_args[@]}" \
"$@" "$CTXDIR"
@ -1036,6 +1073,7 @@ function auto_build() {
compose_set_env_args
update_build_env "${bargs[@]}"
build_update_apps || return 1
build_merge_env
compose_build "$@"
elif [ -f Dockerfile ]; then
docker_parse_env_args
@ -1050,6 +1088,7 @@ function auto_build() {
done
${FAKE:+qvals} "$DOCKER" build \
${NO_CACHE:+--no-cache} \
${PULL:+--pull} \
"${replace_build_args[@]}" "$@"
fi
}
@ -1939,6 +1978,7 @@ FAKE=
VARS=()
FORCE=
NO_CACHE=
PULL=
HOST=
WITH_REGISTRY_AUTH=1
update_apps_mode=ub
@ -1960,6 +2000,7 @@ args=(
-e:,--build-arg:,--env: VARS
-f,--force FORCE=1
-j,--no-cache NO_CACHE=1
-U,--pull PULL=1
-h:,--host: HOST=
-g,--ug,--no-update-apps update_apps_mode=b
-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
#fi
function dm() {
if [ "$1" == use -a -n "$2" -a -f ~/etc/default/dk ]; then
# chercher les aliases éventuels
local machine="$2"; shift; shift
machine="$(
CLUSTERDIRS=()
DM_ALIASES=()
source ~/etc/default/dk
for alias_machine in "${DM_ALIASES[@]}"; do
if [ "${alias_machine%%:*}" == "$machine" ]; then
echo "${alias_machine#*:}"
exit
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 -- use "$machine" "$@"
case "$1" in
use|ssh)
if [ -n "$2" -a -f ~/etc/default/dk ]; then
# chercher les aliases éventuels
local cmd="$1"; shift
local machine="$1"; shift
machine="$(
CLUSTERDIRS=()
DM_ALIASES=()
source ~/etc/default/dk
for alias_machine in "${DM_ALIASES[@]}"; do
if [ "${alias_machine%%:*}" == "$machine" ]; then
echo "${alias_machine#*:}"
exit
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
__docker_machine_wrapper "$@"
else

View File

@ -86,7 +86,13 @@ function generate_sql() {
check_overwrite "$1" || return
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"
return 0
}

View File

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

View File

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

27
pff
View File

@ -30,6 +30,7 @@ PFFCONFVARS=(
"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"
"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
@ -190,6 +191,13 @@ pff:
que les fichiers ayant l'extension .c situés dans le répertoire du
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
Les arguments du script dépendent de la commande utilisée. Les commandes
supportées sont:
@ -571,8 +579,11 @@ function autoinit() {
local pffdir="$1" profile mkdir
[ -d "$pffdir/pff/Current" ] || mkdir -p "$pffdir/pff/Current"
[ -d "$pffdir/pff/Base" ] || mkdir -p "$pffdir/pff/Base"
# tous les fichiers du profil Base doivent être en lecture seule
find "$pffdir/pff/Base" -type f -perm /222 -exec chmod a-w '{}' +
# tous les fichiers du profil Base doivent être en lecture seule, sauf si
# 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
for mkdir in "${MKDIRS[@]}"; do
mkdir -p "$pffdir/$mkdir"
@ -1144,7 +1155,7 @@ function patch_cmd() {
setx rfile=get_rfile "$bfile" "$pffdir"
mkdirof "$rfile"
cp -a "$bfile" "$rfile"
chmod +w "$rfile"
[ -z "$NOUPSTREAM" ] && chmod +w "$rfile"
done
git add -A
[ -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"
for vlfile in "${vlfiles[@]}"; do
bfile="${vlfile%__pv-${version}__}"
chmod +w "$bfile"
[ -z "$NOUPSTREAM" ] && chmod +w "$bfile"
mv "$vlfile" "$bfile"
chmod a-w "$bfile"
[ -z "$NOUPSTREAM" ] && chmod a-w "$bfile"
done
eop_version=1
VERSION="$version"
@ -1308,7 +1319,9 @@ function add_global__link() {
# Création des liens pour $rfile
mkdirof "$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
mkdirof "$cfile" || return
[ -L "$cfile" ] || ln -sf "$clink" "$cfile" || return
@ -1412,7 +1425,7 @@ function add_local__link() {
cp "$Cfile" "$Pfile"
else
cp "$bfile" "$Pfile"
chmod +w "$Pfile"
[ -z "$NOUPSTREAM" ] && chmod +w "$Pfile"
fi
# mettre à jour le profil courant
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
echo >"$destdir/.gitattributes" "\
*.zip -delta
*.jar -delta
*.gz -delta
*.bz2 -delta
*.whl -delta