# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 ##@before * # Faut-il activer les traitements automatiques de utools? Donner à cette # variable la valeur vide pour désactiver les fonctionnalités potentiellement # gourmandes en resources. # Au 18/06/2013, cela ne concerne que les scripts/fichiers suivants: # - lib/profile.d/bash_prompt # - lib/ulib/vcs {git_commit} : "${UTOOLS_AUTO:=1}" "${UTOOLS_NOPUSH:=}" export UTOOLS_AUTO UTOOLS_NOPUSH # 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_NOPUSH=1;; push) UTOOLS_NOPUSH=;; p|cyclep) case "$UTOOLS_NOPUSH" in "") UTOOLS_NOPUSH=1;; *) UTOOLS_NOPUSH=;; esac ;; esac echo "UTOOLS_AUTO=$UTOOLS_AUTO; UTOOLS_NOPUSH=$UTOOLS_NOPUSH" 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_NOPUSH" ] && echo "*")" "Pas de git push auto$([ -n "$UTOOLS_NOPUSH" ] && echo "*")"; do case "$nopush" in "Après git commit, faire git push"*) UTOOLS_NOPUSH=; break;; "Pas de git push auto"*) UTOOLS_NOPUSH=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