Intégration de la branche release-2.8.0

This commit is contained in:
Jephté Clain 2015-07-22 15:09:33 +04:00
commit 893380539f
13 changed files with 138 additions and 37 deletions

View File

@ -1,3 +1,8 @@
## Version 2.8.0 du 22/07/2015-15:09
0f5b572 uinst installe maintenant les profils en mode partagé par défaut
fb6b492 améliorer l'affichage des scripts geturl et openurl
## Version 2.7.0 du 17/07/2015-22:03 ## Version 2.7.0 du 17/07/2015-22:03
7e2a6c3 update-nutools ignore par défaut l'eventuel proxy défini par http_proxy 7e2a6c3 update-nutools ignore par défaut l'eventuel proxy défini par http_proxy

View File

@ -1 +1 @@
2.7.0 2.8.0

6
bashrc
View File

@ -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
if [ -n "$UTOOLS_LOCAL_PROFILES" ]; then
__uenv_source_dirs @@dest@@/bashrc.d "$HOME/etc/bashrc.${HOSTNAME%%.*}.d" __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

17
caturl
View File

@ -10,8 +10,10 @@ USAGE
$scriptname <file.url|file.desktop|URL>" $scriptname <file.url|file.desktop|URL>"
} }
check=
parse_opts "${PRETTYOPTS[@]}" \ parse_opts "${PRETTYOPTS[@]}" \
--help '$exit_with display_help' \ --help '$exit_with display_help' \
--check check=1 \
@ args -- "$@" && set -- "${args[@]}" || die "$args" @ args -- "$@" && set -- "${args[@]}" || die "$args"
function findurl() { function findurl() {
@ -25,7 +27,10 @@ if [ -z "$URL" ]; then
# Essayer de trouver une fichier homepage.{url,desktop} dans le répertoire # Essayer de trouver une fichier homepage.{url,desktop} dans le répertoire
# courant # courant
URLFILE="$(findurl homepage)" URLFILE="$(findurl homepage)"
[ -f "$URLFILE" ] || die "Il faut spécifier l'url à ouvrir" if [ ! -f "$URLFILE" ]; then
[ -n "$check" ] && exit 2
die "Il faut spécifier l'url à ouvrir"
fi
elif [ -d "$URL" ]; then elif [ -d "$URL" ]; then
# répertoire dans lequel se trouve éventuellement un fichier # répertoire dans lequel se trouve éventuellement un fichier
# homepage.{url,desktop} # homepage.{url,desktop}
@ -63,7 +68,10 @@ if [ -n "$URLFILE" ]; then
/[uU][rR][lL]=/ { URL = substr($0, 5) } /[uU][rR][lL]=/ { URL = substr($0, 5) }
END { if (type == 1) print URL } END { if (type == 1) print URL }
')" ')"
[ -n "$URL" ] || die "$URLFILE: ne contient pas d'URL" if [ -z "$URL" ]; then
[ -n "$check" ] && exit 3
die "$URLFILE: ne contient pas d'URL"
fi
elif [ "${URLFILE%.desktop}" != "$URL" ]; then elif [ "${URLFILE%.desktop}" != "$URL" ]; then
# raccourci vers une url de XDG # raccourci vers une url de XDG
URL="$(<"$URLFILE" awk 'BEGIN { type = 0; URL = "" } URL="$(<"$URLFILE" awk 'BEGIN { type = 0; URL = "" }
@ -72,7 +80,10 @@ END { if (type == 1) print URL }
/[uU][rR][lL]=/ { URL = substr($0, 5) } /[uU][rR][lL]=/ { URL = substr($0, 5) }
END { if (type == 2) print URL } END { if (type == 2) print URL }
')" ')"
[ -n "$URL" ] || die "$URLFILE: ne contient pas d'URL" if [ -z "$URL" ]; then
[ -n "$check" ] && exit 3
die "$URLFILE: ne contient pas d'URL"
fi
fi fi
fi fi

7
geturl
View File

@ -14,7 +14,12 @@ parse_opts + "${PRETTYOPTS[@]}" \
--help '$exit_with display_help' \ --help '$exit_with display_help' \
@ args -- "$@" && set -- "${args[@]}" || die "$args" @ args -- "$@" && set -- "${args[@]}" || die "$args"
url="$("$scriptdir/caturl" "$1")" || die "$scriptdir/caturl" --check "$1"
case $? in
2) die "Vous devez spécifier l'url à ouvrir";;
3) die "Le fichier spécifié ne contient pas d'url";;
esac
setx url="$scriptdir/caturl" "$1" || die
shift shift
filename="$(basename "$url")" filename="$(basename "$url")"

View File

@ -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=

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -14,7 +14,12 @@ parse_opts "${PRETTYOPTS[@]}" \
--help '$exit_with display_help' \ --help '$exit_with display_help' \
@ args -- "$@" && set -- "${args[@]}" || die "$args" @ args -- "$@" && set -- "${args[@]}" || die "$args"
url="$("$scriptdir/caturl" "$1")" || die "$scriptdir/caturl" --check "$1"
case $? in
2) die "Vous devez spécifier l'url à ouvrir";;
3) die "Le fichier spécifié ne contient pas d'url";;
esac
setx url="$scriptdir/caturl" "$1" || die
if progexists xdg-open; then if progexists xdg-open; then
exec xdg-open "$url" exec xdg-open "$url"

View File

@ -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
if [ -n "$UTOOLS_LOCAL_PROFILES" ]; then
__uenv_source_dirs @@dest@@/profile.d "$HOME/etc/profile.${HOSTNAME%%.*}.d" __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
View File

@ -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}