uinst installe maintenant les profils en mode partagé par défaut
This commit is contained in:
parent
fb6b492d5c
commit
0f5b5720c2
8
bashrc
8
bashrc
|
@ -1,6 +1,12 @@
|
||||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
|
|
||||||
|
[ -f ~/.nutoolsrc ] && . ~/.nutoolsrc
|
||||||
|
|
||||||
function uprovide() { :; }
|
function uprovide() { :; }
|
||||||
source @@dest@@/lib/ulib/uenv || return
|
source @@dest@@/lib/ulib/uenv || return
|
||||||
__uenv_source_dirs @@dest@@/bashrc.d "$HOME/etc/bashrc.${HOSTNAME%%.*}.d"
|
if [ -n "$UTOOLS_LOCAL_PROFILES" ]; then
|
||||||
|
__uenv_source_dirs @@dest@@/bashrc.d "$HOME/etc/bashrc.${HOSTNAME%%.*}.d"
|
||||||
|
else
|
||||||
|
__uenv_source_dirs @@dest@@/bashrc.d "$HOME/etc/bashrc.d"
|
||||||
|
fi
|
||||||
__uenv_cleanup
|
__uenv_cleanup
|
||||||
|
|
|
@ -12,3 +12,6 @@
|
||||||
#export UTOOLS_BITS=32
|
#export UTOOLS_BITS=32
|
||||||
#export UTOOLS_MYSYSDIST="debian debianlike"
|
#export UTOOLS_MYSYSDIST="debian debianlike"
|
||||||
#export UTOOLS_MYSYSVER="squeeze"
|
#export UTOOLS_MYSYSVER="squeeze"
|
||||||
|
|
||||||
|
# Type d'installation pour les profils
|
||||||
|
#export UTOOLS_LOCAL_PROFILES=
|
||||||
|
|
|
@ -42,6 +42,15 @@ bcdir=lib/completion.d
|
||||||
|
|
||||||
# copier le fichier .nutoolsrc
|
# copier le fichier .nutoolsrc
|
||||||
[ -f ~/.nutoolsrc ] || cp lib/nutoolsrc ~/.nutoolsrc
|
[ -f ~/.nutoolsrc ] || cp lib/nutoolsrc ~/.nutoolsrc
|
||||||
|
if ! quietgrep UTOOLS_LOCAL_PROFILES= ~/.nutoolsrc; then
|
||||||
|
echo "
|
||||||
|
# Type d'installation pour les profils
|
||||||
|
#export UTOOLS_LOCAL_PROFILES=" >>~/.nutoolsrc
|
||||||
|
fi
|
||||||
|
if [ "$UINST_LOCAL_PROFILES" != auto ]; then
|
||||||
|
sedi "/UTOOLS_LOCAL_PROFILES=/c\\
|
||||||
|
export UTOOLS_LOCAL_PROFILES=$(qvalr "$UINST_LOCAL_PROFILES")" ~/.nutoolsrc
|
||||||
|
fi
|
||||||
|
|
||||||
# identification du système
|
# identification du système
|
||||||
echo "##@before *" >lib/profile.d/0nutools
|
echo "##@before *" >lib/profile.d/0nutools
|
||||||
|
|
|
@ -129,6 +129,7 @@ function uenv_update_dir() {
|
||||||
local __myhostname="$MYHOSTNAME"
|
local __myhostname="$MYHOSTNAME"
|
||||||
>"$sio"
|
>"$sio"
|
||||||
for dir in "$@"; do
|
for dir in "$@"; do
|
||||||
|
[ -n "$dir" ] || continue
|
||||||
for file in "$dir/"*; do
|
for file in "$dir/"*; do
|
||||||
[ -f "$file" ] || continue
|
[ -f "$file" ] || continue
|
||||||
files=("${files[@]}" "$file")
|
files=("${files[@]}" "$file")
|
||||||
|
@ -188,13 +189,22 @@ function uenv_update_dir() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function uenv_set_destdirs() {
|
function uenv_set_destdirs() {
|
||||||
|
if [ "$1" == --local-profiles ]; then
|
||||||
local hostname="${HOSTNAME%%.*}"
|
local hostname="${HOSTNAME%%.*}"
|
||||||
shared_profiledestdir="$HOME/etc/profile.d"
|
|
||||||
shared_bashrcdestdir="$HOME/etc/bashrc.d"
|
|
||||||
shared_defaultdestdir="$HOME/etc/default"
|
|
||||||
profiledestdir="$HOME/etc/profile.${hostname}.d"
|
profiledestdir="$HOME/etc/profile.${hostname}.d"
|
||||||
bashrcdestdir="$HOME/etc/bashrc.${hostname}.d"
|
bashrcdestdir="$HOME/etc/bashrc.${hostname}.d"
|
||||||
defaultdestdir="$HOME/etc/default.${hostname}"
|
defaultdestdir="$HOME/etc/default.${hostname}"
|
||||||
|
shared_profiledestdir="$HOME/etc/profile.d"
|
||||||
|
shared_bashrcdestdir="$HOME/etc/bashrc.d"
|
||||||
|
shared_defaultdestdir="$HOME/etc/default"
|
||||||
|
else
|
||||||
|
profiledestdir="$HOME/etc/profile.d"
|
||||||
|
bashrcdestdir="$HOME/etc/bashrc.d"
|
||||||
|
defaultdestdir="$HOME/etc/default"
|
||||||
|
shared_profiledestdir=
|
||||||
|
shared_bashrcdestdir=
|
||||||
|
shared_defaultdestdir=
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function uenv_sourced_in() {
|
function uenv_sourced_in() {
|
||||||
|
@ -253,12 +263,17 @@ cas, il faut décommenter la ligne dans ~/.bash_profile qui source ~/.profile"
|
||||||
}
|
}
|
||||||
|
|
||||||
function uenv_install_profiles() {
|
function uenv_install_profiles() {
|
||||||
|
local local_profiles
|
||||||
|
if [ "$1" == --local-profiles ]; then
|
||||||
|
local_profiles=1
|
||||||
|
shift
|
||||||
|
fi
|
||||||
local projdir="$1" profiledir="$2" bashrcdir="$3" defaultdir="$4"
|
local projdir="$1" profiledir="$2" bashrcdir="$3" defaultdir="$4"
|
||||||
local tmpfile
|
local tmpfile shared
|
||||||
local prefix envsrcdir envdestdir shadestdir envfiles envfile envsrc envdest shadest
|
local prefix envsrcdir envdestdir shadestdir envfiles envfile envsrc envdest shadest
|
||||||
local shared_profiledestdir shared_bashrcdestdir shared_defaultdestdir
|
local shared_profiledestdir shared_bashrcdestdir shared_defaultdestdir
|
||||||
local profiledestdir bashrcdestdir defaultdestdir
|
local profiledestdir bashrcdestdir defaultdestdir
|
||||||
uenv_set_destdirs
|
uenv_set_destdirs ${local_profiles:+--local-profiles}
|
||||||
|
|
||||||
ac_set_tmpfile tmpfile
|
ac_set_tmpfile tmpfile
|
||||||
for prefix in profile bashrc default; do
|
for prefix in profile bashrc default; do
|
||||||
|
@ -266,19 +281,25 @@ function uenv_install_profiles() {
|
||||||
envdestdir="${prefix}destdir"; envdestdir="${!envdestdir}"
|
envdestdir="${prefix}destdir"; envdestdir="${!envdestdir}"
|
||||||
shadestdir="shared_${prefix}destdir"; shadestdir="${!shadestdir}"
|
shadestdir="shared_${prefix}destdir"; shadestdir="${!shadestdir}"
|
||||||
[ -n "$envsrcdir" -a -d "$envsrcdir" ] || continue
|
[ -n "$envsrcdir" -a -d "$envsrcdir" ] || continue
|
||||||
mkdir -p "$envdestdir" "$shadestdir"
|
mkdir -p "$envdestdir"
|
||||||
|
[ -n "$shadestdir" ] && mkdir -p "$shadestdir"
|
||||||
|
|
||||||
array_from_lines envfiles "$(list_files "$envsrcdir")"
|
array_from_lines envfiles "$(list_files "$envsrcdir")"
|
||||||
for envfile in "${envfiles[@]}"; do
|
for envfile in "${envfiles[@]}"; do
|
||||||
|
envsrc="$envsrcdir/$envfile"
|
||||||
if [ "${envfile%.shared}" != "$envfile" ]; then
|
if [ "${envfile%.shared}" != "$envfile" ]; then
|
||||||
# Avec l'extension .shared, toujours installer dans le
|
|
||||||
# répertoire des profils partagés
|
|
||||||
envsrc="$envsrcdir/$envfile"
|
|
||||||
envfile="${envfile%.shared}"
|
envfile="${envfile%.shared}"
|
||||||
shadest="$shadestdir/$envfile"
|
shared=1
|
||||||
envdest="$shadest"
|
else
|
||||||
|
shared=
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$shadestdir" ]; then
|
||||||
|
if [ -n "$shared" ]; then
|
||||||
|
# si fichier partagé, toujours le copier dans le répertoire
|
||||||
|
# des fichiers partagés
|
||||||
|
envdest="$shadestdir/$envfile"
|
||||||
else
|
else
|
||||||
envsrc="$envsrcdir/$envfile"
|
|
||||||
envdest="$envdestdir/$envfile"
|
envdest="$envdestdir/$envfile"
|
||||||
shadest="$shadestdir/$envfile"
|
shadest="$shadestdir/$envfile"
|
||||||
if [ ! -f "$envdest" -a -f "$shadest" ]; then
|
if [ ! -f "$envdest" -a -f "$shadest" ]; then
|
||||||
|
@ -287,6 +308,9 @@ function uenv_install_profiles() {
|
||||||
envdest="$shadest"
|
envdest="$shadest"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
envdest="$envdestdir/$envfile"
|
||||||
|
fi
|
||||||
|
|
||||||
local actual_envdestdir="$(dirname -- "$envdest")"
|
local actual_envdestdir="$(dirname -- "$envdest")"
|
||||||
if [ ! -f "$envdest" ]; then
|
if [ ! -f "$envdest" ]; then
|
||||||
|
|
|
@ -17,6 +17,7 @@ function uinst() {
|
||||||
# l'environnement de l'appelant.
|
# l'environnement de l'appelant.
|
||||||
local UINST_CONFIGURE_FORCE
|
local UINST_CONFIGURE_FORCE
|
||||||
local UINST_COPY_METHOD
|
local UINST_COPY_METHOD
|
||||||
|
local UINST_LOCAL_PROFILES
|
||||||
local -a UINST_DEFAULTS
|
local -a UINST_DEFAULTS
|
||||||
local -a UINST_CONFIG_VARS
|
local -a UINST_CONFIG_VARS
|
||||||
local -a UINST_CONFIG_VARCMDS
|
local -a UINST_CONFIG_VARCMDS
|
||||||
|
@ -90,6 +91,11 @@ OPTIONS
|
||||||
--include-vcs
|
--include-vcs
|
||||||
Inclure les fichiers de VCS dans les fichiers copiés. Par défaut, les
|
Inclure les fichiers de VCS dans les fichiers copiés. Par défaut, les
|
||||||
fichiers de VCS sont exclus.
|
fichiers de VCS sont exclus.
|
||||||
|
-l, --local-profiles
|
||||||
|
Installer les profils locaux comme tels
|
||||||
|
--shared-profiles
|
||||||
|
Installer les profils locaux comme des profils partagés. C'est la valeur
|
||||||
|
par défaut pour compatibilité.
|
||||||
-C Configurer un répertoire pour le déploiement avec uinst
|
-C Configurer un répertoire pour le déploiement avec uinst
|
||||||
Ajouter l'option --force pour forcer la reconfiguration"
|
Ajouter l'option --force pour forcer la reconfiguration"
|
||||||
}
|
}
|
||||||
|
@ -131,6 +137,8 @@ OPTIONS
|
||||||
--prefix UINST_AUTOPREFIX=1 \
|
--prefix UINST_AUTOPREFIX=1 \
|
||||||
--no-prefix UINST_AUTOPREFIX= \
|
--no-prefix UINST_AUTOPREFIX= \
|
||||||
--include-vcs UINST_COPY_METHOD=cpdir \
|
--include-vcs UINST_COPY_METHOD=cpdir \
|
||||||
|
-l,--local-profiles UINST_LOCAL_PROFILES=1 \
|
||||||
|
--shared-profiles UINST_LOCAL_PROFILES= \
|
||||||
-C UINST_ACTION=configure \
|
-C UINST_ACTION=configure \
|
||||||
-f,--force UINST_CONFIGURE_FORCE=1 \
|
-f,--force UINST_CONFIGURE_FORCE=1 \
|
||||||
--prepare-1s: UINST_PREPARE_DIR \
|
--prepare-1s: UINST_PREPARE_DIR \
|
||||||
|
@ -171,6 +179,7 @@ OPTIONS
|
||||||
function __uinst_init() {
|
function __uinst_init() {
|
||||||
UINST_CONFIGURE_FORCE=
|
UINST_CONFIGURE_FORCE=
|
||||||
UINST_COPY_METHOD="${UINST_COPY_METHOD:-cpdirnovcs}"
|
UINST_COPY_METHOD="${UINST_COPY_METHOD:-cpdirnovcs}"
|
||||||
|
UINST_LOCAL_PROFILES="${UTOOLS_LOCAL_PROFILES:-auto}"
|
||||||
UINST_DEFAULTS=(
|
UINST_DEFAULTS=(
|
||||||
uinc='release'
|
uinc='release'
|
||||||
uinc_options='()'
|
uinc_options='()'
|
||||||
|
@ -774,6 +783,7 @@ function __uinst_udir2s() {
|
||||||
for __uinst_var in "${__uinst_arrays[@]}"; do
|
for __uinst_var in "${__uinst_arrays[@]}"; do
|
||||||
set_array_cmd "$__uinst_var" >>"$__uinst_config"
|
set_array_cmd "$__uinst_var" >>"$__uinst_config"
|
||||||
done
|
done
|
||||||
|
set_var_cmd "UINST_LOCAL_PROFILES" "$UINST_LOCAL_PROFILES" >>"$__uinst_config"
|
||||||
set_var_cmd "UINST_ISTMPDIR" "$UINST_ISTMPDIR" >>"$__uinst_config"
|
set_var_cmd "UINST_ISTMPDIR" "$UINST_ISTMPDIR" >>"$__uinst_config"
|
||||||
set_var_cmd "UINST_ORIGSRC" "$UINST_ORIGSRC" >>"$__uinst_config"
|
set_var_cmd "UINST_ORIGSRC" "$UINST_ORIGSRC" >>"$__uinst_config"
|
||||||
set_var_cmd "UINST_SRCDIR" "$UINST_SRCDIR" >>"$__uinst_config"
|
set_var_cmd "UINST_SRCDIR" "$UINST_SRCDIR" >>"$__uinst_config"
|
||||||
|
@ -858,8 +868,11 @@ function __uinst_udir2s() {
|
||||||
## Installer les profils
|
## Installer les profils
|
||||||
if is_yes "$install_profiles"; then
|
if is_yes "$install_profiles"; then
|
||||||
urequire uenv uenv_update
|
urequire uenv uenv_update
|
||||||
etitle "Installation des profils" \
|
etitle "Installation des profils"
|
||||||
uenv_install_profiles "$srcdir" "$profiledir" "$bashrcdir" "$defaultdir"
|
local local_profiles="$UINST_LOCAL_PROFILES"
|
||||||
|
[ "$local_profiles" == auto ] && local_profiles=
|
||||||
|
uenv_install_profiles ${local_profiles:+--local-profiles} "$srcdir" "$profiledir" "$bashrcdir" "$defaultdir"
|
||||||
|
eend
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## Déploiement
|
## Déploiement
|
||||||
|
|
6
nutools
6
nutools
|
@ -12,6 +12,8 @@ USAGE
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-C, --configure
|
-C, --configure
|
||||||
Faire la configuration pour l'utilisateur courant en appelant uenv -u
|
Faire la configuration pour l'utilisateur courant en appelant uenv -u
|
||||||
|
Avec cette option, l'option -l (ou --local-profiles) est aussi reconnue
|
||||||
|
et est passée directement à uenv
|
||||||
-v, --version
|
-v, --version
|
||||||
Afficher la version de nutools installée. C'est l'option par défaut
|
Afficher la version de nutools installée. C'est l'option par défaut
|
||||||
-c, --check
|
-c, --check
|
||||||
|
@ -33,10 +35,12 @@ OPTIONS
|
||||||
}
|
}
|
||||||
|
|
||||||
action=show
|
action=show
|
||||||
|
local_profiles=
|
||||||
coper=
|
coper=
|
||||||
args=(
|
args=(
|
||||||
--help '$exit_with display_help'
|
--help '$exit_with display_help'
|
||||||
-C,--configure action=configure
|
-C,--configure action=configure
|
||||||
|
-l,--local-profiles local_profiles=1
|
||||||
-v,--version action=show
|
-v,--version action=show
|
||||||
-c,--check action=check
|
-c,--check action=check
|
||||||
-o:,--oper:,--op: '$action=check; set@ coper'
|
-o:,--oper:,--op: '$action=check; set@ coper'
|
||||||
|
@ -53,7 +57,7 @@ parse_args "$@"; set -- "${args[@]}"
|
||||||
|
|
||||||
case "$action" in
|
case "$action" in
|
||||||
configure)
|
configure)
|
||||||
"$scriptdir/uenv" -u
|
"$scriptdir/uenv" -u ${local_profiles:+--local-profiles}
|
||||||
;;
|
;;
|
||||||
show)
|
show)
|
||||||
setx nutoolsver="$scriptdir/pver" -F "$scriptdir/VERSION.txt" --show
|
setx nutoolsver="$scriptdir/pver" -F "$scriptdir/VERSION.txt" --show
|
||||||
|
|
7
profile
7
profile
|
@ -1,8 +1,13 @@
|
||||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
|
|
||||||
|
[ -f ~/.nutoolsrc ] && . ~/.nutoolsrc
|
||||||
[ -z "$USER" -a -n "$LOGNAME" ] && export USER="$LOGNAME"
|
[ -z "$USER" -a -n "$LOGNAME" ] && export USER="$LOGNAME"
|
||||||
|
|
||||||
function uprovide() { :; }
|
function uprovide() { :; }
|
||||||
source @@dest@@/lib/ulib/uenv || return
|
source @@dest@@/lib/ulib/uenv || return
|
||||||
__uenv_source_dirs @@dest@@/profile.d "$HOME/etc/profile.${HOSTNAME%%.*}.d"
|
if [ -n "$UTOOLS_LOCAL_PROFILES" ]; then
|
||||||
|
__uenv_source_dirs @@dest@@/profile.d "$HOME/etc/profile.${HOSTNAME%%.*}.d"
|
||||||
|
else
|
||||||
|
__uenv_source_dirs @@dest@@/profile.d "$HOME/etc/profile.d"
|
||||||
|
fi
|
||||||
__uenv_cleanup
|
__uenv_cleanup
|
||||||
|
|
19
uenv
19
uenv
|
@ -17,7 +17,7 @@ OPTIONS
|
||||||
HOME=/path/to/homedir
|
HOME=/path/to/homedir
|
||||||
Spécifier le chemin vers ~
|
Spécifier le chemin vers ~
|
||||||
Cette option doit être placée avant les valeurs projdirs.
|
Cette option doit être placée avant les valeurs projdirs.
|
||||||
-u
|
-u, --update
|
||||||
Installer ou mettre à jour les fichiers de profil des projets spécifiés:
|
Installer ou mettre à jour les fichiers de profil des projets spécifiés:
|
||||||
Les fichiers ~/.profile, ~/.bash_profile et ~/.bashrc sont vérifiés et
|
Les fichiers ~/.profile, ~/.bash_profile et ~/.bashrc sont vérifiés et
|
||||||
corriger automatiquement pour inclure les fichiers de nutools.
|
corriger automatiquement pour inclure les fichiers de nutools.
|
||||||
|
@ -26,12 +26,23 @@ OPTIONS
|
||||||
Les projets spécifiés *doivent* être configurés avec uinst -C, et
|
Les projets spécifiés *doivent* être configurés avec uinst -C, et
|
||||||
définir la valeur install_profiles=true dans leur fichier .udir
|
définir la valeur install_profiles=true dans leur fichier .udir
|
||||||
Si aucun projet n'est spécifié, prendre les fichiers de profil de
|
Si aucun projet n'est spécifié, prendre les fichiers de profil de
|
||||||
nutools."
|
nutools.
|
||||||
|
-l, --local-profiles
|
||||||
|
Avec l'option -u, installer les profils locaux comme tels. Pour les
|
||||||
|
fichiers de profil qui sont indiqués comme non partagés, les copier dans
|
||||||
|
des répertoires spécifiques de la forme {profile,bashrc}.HOSTNAME.d et
|
||||||
|
default.HOSTNAME
|
||||||
|
-s, --shared-profiles
|
||||||
|
Installer les profils locaux comme des profils partagés. C'est l'option
|
||||||
|
par défaut."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
local_profiles="$UTOOLS_LOCAL_PROFILES"
|
||||||
parse_opts "${PRETTYOPTS[@]}" \
|
parse_opts "${PRETTYOPTS[@]}" \
|
||||||
--help '$exit_with display_help' \
|
--help '$exit_with display_help' \
|
||||||
-u update \
|
-u,--update update=1 \
|
||||||
|
-l,--local-profiles local_profiles=1 \
|
||||||
|
-s,--shared-profiles local_profiles= \
|
||||||
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
||||||
|
|
||||||
if [[ "$1" == HOME=* ]]; then
|
if [[ "$1" == HOME=* ]]; then
|
||||||
|
@ -40,7 +51,7 @@ if [[ "$1" == HOME=* ]]; then
|
||||||
shift
|
shift
|
||||||
fi
|
fi
|
||||||
|
|
||||||
uenv_set_destdirs
|
uenv_set_destdirs ${local_profiles:+--local-profiles}
|
||||||
|
|
||||||
if [ ! -d "$profiledestdir" -o ! -d "$bashrcdestdir" -o ! -d "$defaultdestdir" ]; then
|
if [ ! -d "$profiledestdir" -o ! -d "$bashrcdestdir" -o ! -d "$defaultdestdir" ]; then
|
||||||
# forcer la maj si un des répertoires ~/etc/{profile.d,bashrc.d,default}
|
# forcer la maj si un des répertoires ~/etc/{profile.d,bashrc.d,default}
|
||||||
|
|
Loading…
Reference in New Issue