#!/bin/bash # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 function display_help() { uecho "$scriptname: Lancer un shell après avoir chargé des modules de ulib USAGE $scriptname [options] [args...] OPTIONS -r module Spécifier un module à charger avec urequire. Plusieurs modules peuvent être spécifiés en les séparant par ':' Par défaut, seul le module DEFAULTS est chargé. Un shell est lancé dans lequel les modules spécifiés sont chargés. De plus, PATH est modifié pour que $scriptdir soit ajouté en premier. Les arguments sont passés inchangés au shell." } source "$(dirname "$0")/ulib/ulib" && urequire DEFAULTS || exit 1 parse_opts + "${PRETTYOPTS[@]}" \ --help '$exit_with display_help' \ -r: modules \ @ args -- "$@" && set -- "${args[@]}" || die "$args" ac_set_tmpfile bashrc echo "\ if ! grep -q '/etc/bash.bashrc' /etc/profile; then [ -f /etc/bash.bashrc ] && source /etc/bash.bashrc fi if ! grep -q '~/.bashrc' ~/.bash_profile; then [ -f ~/.bashrc ] && source ~/.bashrc fi [ -f /etc/profile ] && source /etc/profile [ -f ~/.bash_profile ] && source ~/.bash_profile if ! grep -q '$scriptdir/bashrc' ~/.bashrc; then if [ -f '$scriptdir/bashrc' ]; then if ! grep -q @@dest@@ '$scriptdir/bashrc'; then # ne lire que si le répertoire est déployé source '$scriptdir/bashrc' fi fi function uprovide() { :; } source '$scriptdir/ulib/uenv' __uenv_source_dirs '$scriptdir/lib/bashrc.d' __uenv_cleanup fi if ! grep -q '$scriptdir/profile' ~/.bash_profile; then if [ -f '$scriptdir/profile' ]; then if grep -q @@dest@@ '$scriptdir/profile'; then # répertoire non déployé # la ligne suivante est copiée du fichier profile [ -z '$USER' -a -n '$LOGNAME' ] && export USER='$LOGNAME' else # ne lire que si le répertoire est déployé source '$scriptdir/profile' fi fi function uprovide() { :; } source '$scriptdir/ulib/uenv' __uenv_source_dirs '$scriptdir/lib/profile.d' __uenv_cleanup fi # Modifier le PATH PATH=$(quoted_args "$scriptdir"):\"$PATH\" if [ -n '$DEFAULT_PS1' ]; then DEFAULT_PS1=$(quoted_args "[ulibshell] $DEFAULT_PS1") else if [ -z '$PS1' ]; then PS1='\\u@\\h \\w \\$ ' fi PS1=\"[ulibshell] \$PS1\" fi $(quoted_args source "$scriptdir/ulib/ulib") urequire DEFAULTS" >"$bashrc" array_fix_paths modules if [ -n "${modules[*]}" ]; then etitle "Chargement des modules" for module in "${modules[@]}"; do estep "$module" quoted_args urequire "$module" >>"$bashrc" done eend fi estep "Lancement du sous-shell" "$SHELL" --rcfile "$bashrc" -i -- "$@" # note: ne pas faire exec "$SHELL", parce que sinon le fichier temporaire bashrc # n'est pas supprimé