104 lines
4.1 KiB
Bash
104 lines
4.1 KiB
Bash
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
|
##@before *
|
|
|
|
# Traitements automatiques de nutools
|
|
# Au 18/06/2013, cela ne concerne que les scripts/fichiers suivants:
|
|
# - lib/profile.d/bash_prompt
|
|
# - lib/ulib/vcs { git_commit(), git_ensure_branch() }
|
|
# Faut-il activer les traitements automatiques de utools? Donner à cette
|
|
# variable la valeur vide pour désactiver les fonctionnalités potentiellement
|
|
# gourmandes en resources.
|
|
: "${UTOOLS_AUTO:=1}"
|
|
export UTOOLS_AUTO
|
|
# Activer le mode offline de git. Par exemple, les modifications ne sont pas
|
|
# pousser automatiquement vers l'origine.
|
|
: "${UTOOLS_VCS_OFFLINE:=}"
|
|
export UTOOLS_VCS_OFFLINE
|
|
|
|
# fonctions utilitaires pour les chemins
|
|
function __udelpath() {
|
|
# supprimer le chemin $1 de $2(=PATH)
|
|
local _qdir="${1//\//\\/}"
|
|
eval "export ${2:-PATH}; ${2:-PATH}"'="${'"${2:-PATH}"'#$1:}"; '"${2:-PATH}"'="${'"${2:-PATH}"'%:$1}"; '"${2:-PATH}"'="${'"${2:-PATH}"'//:$_qdir:/:}"; [ "$'"${2:-PATH}"'" == "$1" ] && '"${2:-PATH}"'='
|
|
}
|
|
function __uaddpath() {
|
|
# Ajouter le chemin $1 à la fin, dans $2(=PATH), s'il n'y existe pas déjà
|
|
local _qdir="${1//\//\\/}"
|
|
eval "export ${2:-PATH}; "'[ "${'"${2:-PATH}"'#$1:}" == "$'"${2:-PATH}"'" -a "${'"${2:-PATH}"'%:$1}" == "$'"${2:-PATH}"'" -a "${'"${2:-PATH}"'//:$_qdir:/:}" == "$'"${2:-PATH}"'" -a "$'"${2:-PATH}"'" != "$1" ] && '"${2:-PATH}"'="${'"${2:-PATH}"':+$'"${2:-PATH}"':}$1"'
|
|
}
|
|
function __uinspath() {
|
|
# Ajouter le chemin $1 au début, dans $2(=PATH), s'il n'y existe pas déjà
|
|
local _qdir="${1//\//\\/}"
|
|
eval "export ${2:-PATH}; "'[ "${'"${2:-PATH}"'#$1:}" == "$'"${2:-PATH}"'" -a "${'"${2:-PATH}"'%:$1}" == "$'"${2:-PATH}"'" -a "${'"${2:-PATH}"'//:$_qdir:/:}" == "$'"${2:-PATH}"'" -a "$'"${2:-PATH}"'" != "$1" ] && '"${2:-PATH}"'="$1${'"${2:-PATH}"':+:$'"${2:-PATH}"'}"'
|
|
}
|
|
|
|
# fonctions utilitaires
|
|
function pcd() {
|
|
local prop dir
|
|
prop="${1:-root}"
|
|
dir="$("@@dest@@/uproject" "get$prop")" || return 1
|
|
[ -n "$dir" ] && cd "$dir"
|
|
}
|
|
function nutools() {
|
|
if [ -n "$1" ]; then
|
|
case "$1" in
|
|
0|d|dis|disable) UTOOLS_AUTO=;;
|
|
1|e|ena|enable) UTOOLS_AUTO=1;;
|
|
f|full) UTOOLS_AUTO=f;;
|
|
cycle)
|
|
case "$UTOOLS_AUTO" in
|
|
1) UTOOLS_AUTO=f;;
|
|
f) UTOOLS_AUTO=;;
|
|
*) UTOOLS_AUTO=1;;
|
|
esac
|
|
;;
|
|
n|np|nopush) UTOOLS_VCS_OFFLINE=1;;
|
|
push) UTOOLS_VCS_OFFLINE=;;
|
|
p|cyclep)
|
|
case "$UTOOLS_VCS_OFFLINE" in
|
|
"") UTOOLS_VCS_OFFLINE=1;;
|
|
*) UTOOLS_VCS_OFFLINE=;;
|
|
esac
|
|
;;
|
|
esac
|
|
echo "UTOOLS_AUTO=$UTOOLS_AUTO; UTOOLS_VCS_OFFLINE=$UTOOLS_VCS_OFFLINE" 1>&2
|
|
else
|
|
local PS3 prompt nopush
|
|
echo "=== Type de prompt ===" 1>&2
|
|
PS3="Veuillez choisir le type de prompt: "
|
|
select prompt in Aucun$([ -z "$UTOOLS_AUTO" ] && echo "*") Minimum$([ "$UTOOLS_AUTO" == 1 ] && echo "*") Complet$([ "$UTOOLS_AUTO" == f ] && echo "*"); do
|
|
case "$prompt" in
|
|
Aucun*) UTOOLS_AUTO=; break;;
|
|
Minimum*) UTOOLS_AUTO=1; break;;
|
|
Complet*) UTOOLS_AUTO=f; break;;
|
|
esac
|
|
done
|
|
echo "=== git push automatique ===" 1>&2
|
|
PS3="Veuillez choisir le type de push: "
|
|
select nopush in "Après git commit, faire git push$([ -z "$UTOOLS_VCS_OFFLINE" ] && echo "*")" "Pas de git push auto$([ -n "$UTOOLS_VCS_OFFLINE" ] && echo "*")"; do
|
|
case "$nopush" in
|
|
"Après git commit, faire git push"*) UTOOLS_VCS_OFFLINE=; break;;
|
|
"Pas de git push auto"*) UTOOLS_VCS_OFFLINE=1; break;;
|
|
esac
|
|
done
|
|
fi
|
|
}
|
|
function utools() { nutools "$@"; }
|
|
|
|
if [ -n "$UTOOLS_USSH_ALIAS" ]; then
|
|
function ssh() { "@@dest@@/ussh" "$@"; }
|
|
fi
|
|
|
|
# Configuration
|
|
__uaddpath "@@dest@@" PATH
|
|
__uaddpath "@@dest@@" UINCPATH
|
|
__uaddpath "@@dest@@/legacy" UINCPATH
|
|
|
|
[ -n "$UTOOLS_LANG" -a -z "$LANG" ] && LANG="$UTOOLS_LANG"
|
|
[ -z "$UTOOLS_LANG" ] && UTOOLS_LANG="$LANG"
|
|
export LANG UTOOLS_LANG
|
|
|
|
# Le fichier nutoolsrc doit être chargé systématiquement
|
|
[ -f /etc/nutoolsrc ] && . /etc/nutoolsrc
|
|
[ -f ~/.nutoolsrc ] && . ~/.nutoolsrc
|