From 725ba6d2c222c8ce8a319986e886bc0000cf9660 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Wed, 23 Sep 2020 13:35:01 +0400 Subject: [PATCH 01/15] =?UTF-8?q?cssh:=20donner=20un=20nom=20=C3=A0=20la?= =?UTF-8?q?=20session?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start-screen | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/start-screen b/start-screen index f449e34..3c0dda4 100755 --- a/start-screen +++ b/start-screen @@ -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 From 04d037f3edab1f197b033f8f5a88d4ef4e26daac Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Wed, 23 Sep 2020 14:33:01 +0400 Subject: [PATCH 02/15] support rhel8 / ol8 --- lib/ulib/sysinfos | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/ulib/sysinfos b/lib/ulib/sysinfos index 575f5c8..e34b21c 100644 --- a/lib/ulib/sysinfos +++ b/lib/ulib/sysinfos @@ -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);; From 037cb1a9e2e05288c6af84a4a8a5d75a608789fe Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Fri, 25 Sep 2020 11:21:41 +0400 Subject: [PATCH 03/15] maj template sql --- lib/templates/text | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/templates/text b/lib/templates/text index 9ca3513..3bd9083 100755 --- a/lib/templates/text +++ b/lib/templates/text @@ -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 } From d1d32de841e530e828106f99f856a5535981361c Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Mon, 28 Sep 2020 16:08:15 +0400 Subject: [PATCH 04/15] dk: bug avec update-devel --- dk | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dk b/dk index be3198f..c5f6745 100755 --- a/dk +++ b/dk @@ -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" From 82a7952e2afe3a07f09439724a23f2f96c7f3391 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Fri, 2 Oct 2020 09:12:56 +0400 Subject: [PATCH 05/15] dm: support des aliases pour ssh aussi --- lib/bashrc.d/docker_aliases.shared | 61 ++++++++++++++++-------------- 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/lib/bashrc.d/docker_aliases.shared b/lib/bashrc.d/docker_aliases.shared index 7da3cbf..8c0bcff 100644 --- a/lib/bashrc.d/docker_aliases.shared +++ b/lib/bashrc.d/docker_aliases.shared @@ -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 From 51c4c3317c6f26409ed83126bfb2f5ccec713c3b Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Tue, 6 Oct 2020 03:46:31 +0400 Subject: [PATCH 06/15] =?UTF-8?q?support=20s=C3=A9lection=20java=2011?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/ulib/java | 174 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 117 insertions(+), 57 deletions(-) diff --git a/lib/ulib/java b/lib/ulib/java index 588cb64..8f56546 100644 --- a/lib/ulib/java +++ b/lib/ulib/java @@ -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" @@ -247,11 +289,13 @@ function __java_compute_vms() { array_from_lines vms "$(list_dirs /usr/lib/jvm)" for vm in "${vms[@]}"; do v="${vm%-sun}" + v="${vm%-amd64}" + v="${vm%-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 +308,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 +323,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 +352,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 +383,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 +427,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 +439,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 +447,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 +494,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 +521,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 +529,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 +537,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 +545,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 +565,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 From a91542b47f74037f360d99f1cca0928be84e86dd Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Tue, 6 Oct 2020 04:02:19 +0400 Subject: [PATCH 07/15] =?UTF-8?q?maj=20.gitattributes=20par=20d=C3=A9faut?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- uproject | 1 + 1 file changed, 1 insertion(+) diff --git a/uproject b/uproject index 40f8764..6918fb8 100755 --- a/uproject +++ b/uproject @@ -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 From 4603b1a6a0883c2769e7ad37049f0e99b39083d3 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Tue, 6 Oct 2020 04:40:55 +0400 Subject: [PATCH 08/15] bug --- lib/ulib/java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/ulib/java b/lib/ulib/java index 8f56546..16f80bb 100644 --- a/lib/ulib/java +++ b/lib/ulib/java @@ -288,9 +288,10 @@ 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%-amd64}" - v="${vm%-openjdk}" + v="$vm" + v="${v%-sun}" + v="${v%-amd64}" + v="${v%-openjdk}" v="${v#java-}" v="${v#j2sdk}" if [ "$v" == 1.4 ]; then From e3957209025df5de3516377ffa37b7a1e36ec962 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Fri, 9 Oct 2020 09:08:02 +0400 Subject: [PATCH 09/15] maj doc --- dk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dk b/dk index c5f6745..46ed891 100755 --- a/dk +++ b/dk @@ -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,7 +281,7 @@ 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 -g, --ug, --no-update-apps From 85842f3c41f54072c3e6e3a07e139dd334b9bdac Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Mon, 26 Oct 2020 16:30:35 +0400 Subject: [PATCH 10/15] renommer start-screen en Sscreen --- start-screen => Sscreen | 0 cssh | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) rename start-screen => Sscreen (100%) diff --git a/start-screen b/Sscreen similarity index 100% rename from start-screen rename to Sscreen diff --git a/cssh b/cssh index ae29366..55cc684 100755 --- a/cssh +++ b/cssh @@ -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" From edf956f1bb79310b835f9e310933f514271af10d Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Wed, 28 Oct 2020 05:54:42 +0400 Subject: [PATCH 11/15] =?UTF-8?q?dk:=20BRANCH=20peut=20aussi=20=C3=AAtre?= =?UTF-8?q?=20un=20^COMMIT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dk | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/dk b/dk index 46ed891..58aae55 100755 --- a/dk +++ b/dk @@ -342,6 +342,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 @@ -833,14 +835,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 From c921d2a9024c77579f5c958f2fc807f7a04736cd Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Wed, 28 Oct 2020 22:45:10 +0400 Subject: [PATCH 12/15] pff: support de NOUPSTREAM --- pff | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/pff b/pff index d3c39a3..da87e0c 100755 --- a/pff +++ b/pff @@ -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" From 45c40d735b293baa2c7a96054d024f01fcfa8c18 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Thu, 12 Nov 2020 15:51:22 +0400 Subject: [PATCH 13/15] dk: support de --pull --- dk | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/dk b/dk index 58aae55..1dc77ac 100755 --- a/dk +++ b/dk @@ -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 @@ -284,6 +284,8 @@ OPTIONS build 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: @@ -1009,6 +1011,7 @@ function default_compose_build() { "${replace_env_args[@]}" "${env_args[@]}" \ build \ ${NO_CACHE:+--no-cache} \ + ${PULL:+--pull} \ "${replace_build_args[@]}" "${build_args[@]}" \ "$@" } @@ -1019,6 +1022,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" @@ -1955,6 +1959,7 @@ FAKE= VARS=() FORCE= NO_CACHE= +PULL= HOST= WITH_REGISTRY_AUTH=1 update_apps_mode=ub @@ -1976,6 +1981,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 From 24d05192d173483603ec0d7b0dc9b608652274fe Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Thu, 12 Nov 2020 21:56:10 +0400 Subject: [PATCH 14/15] dk: support merge .shared_env et .machine_env --- dk | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/dk b/dk index 1dc77ac..96b60dc 100755 --- a/dk +++ b/dk @@ -451,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" @@ -983,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= @@ -1056,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 @@ -1070,6 +1088,7 @@ function auto_build() { done ${FAKE:+qvals} "$DOCKER" build \ ${NO_CACHE:+--no-cache} \ + ${PULL:+--pull} \ "${replace_build_args[@]}" "$@" fi } From c6d00839d22fa334f53d84294c2cdf8b6f636b90 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Thu, 12 Nov 2020 23:05:13 +0400 Subject: [PATCH 15/15] Init changelog & version 9.10.0 --- CHANGES.md | 17 +++++++++++++++++ VERSION.txt | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index fd3d58b..7acc7c2 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -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 diff --git a/VERSION.txt b/VERSION.txt index 5ffe92d..68478a5 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -9.9.0 +9.10.0