98 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/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. Ajouter aussi le chemin vers les uapps python
 | 
						|
PATH=$(quoted_args "$scriptdir:$scriptdir/pyulib/src/uapps:$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/auto")" >"$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 -- "$@"
 | 
						|
 | 
						|
ac_clean "$bashrc"
 | 
						|
# note: ne pas faire exec "$SHELL", parce que sinon le fichier temporaire bashrc
 | 
						|
# n'est pas supprimé
 |