diff options
author | 2014-03-21 17:48:35 +0100 | |
---|---|---|
committer | 2014-05-03 12:28:38 -0700 | |
commit | 4285baa6e1b88c6ae1e96e3894828dc9063a380f (patch) | |
tree | 76240a6c49b7fa17d231b1a4dc188172595653e5 /share | |
parent | e530af1ff76641bb2c232770d73c68b559312b36 (diff) |
Prompt sample: Debian chroot environment
When you chroot in Debian, bash shows the chroot environment in the prompt:
```bash
...
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
...
```
This is the effect:
```
(chroot_env) user@host:~#
```
It is useful when chrooting, since usually the hostname remains the same and thus you can't distinguish where you are.
Diffstat (limited to 'share')
-rw-r--r-- | share/tools/web_config/sample_prompts/debian_chroot.fish | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/share/tools/web_config/sample_prompts/debian_chroot.fish b/share/tools/web_config/sample_prompts/debian_chroot.fish new file mode 100644 index 00000000..d800c744 --- /dev/null +++ b/share/tools/web_config/sample_prompts/debian_chroot.fish @@ -0,0 +1,55 @@ +# name: Debian chroot +# author: Maurizio De Santis + +function fish_prompt --description 'Write out the prompt, prepending the Debian chroot environment if present' + + # Just calculate these once, to save a few cycles when displaying the prompt + if not set -q __fish_prompt_hostname + set -g __fish_prompt_hostname (hostname|cut -d . -f 1) + end + + if not set -q __fish_prompt_normal + set -g __fish_prompt_normal (set_color normal) + end + + if not set -q __fish_prompt_chroot_env + set -g __fish_prompt_chroot_env (set_color yellow) + end + + # Set variable identifying the chroot you work in (used in the prompt below) + if begin; not set -q debian_chroot; and test -r /etc/debian_chroot; end + set debian_chroot (cat /etc/debian_chroot) + end + if begin; not set -q __fish_debian_chroot_prompt; and set -q debian_chroot; and test -n $debian_chroot; end + set -g __fish_debian_chroot_prompt "($debian_chroot)" + end + + # Prepend the chroot environment if present + if set -q __fish_debian_chroot_prompt + echo -n -s "$__fish_prompt_chroot_env" "$__fish_debian_chroot_prompt" "$__fish_prompt_normal" ' ' + end + + switch $USER + + case root + + if not set -q __fish_prompt_cwd + if set -q fish_color_cwd_root + set -g __fish_prompt_cwd (set_color $fish_color_cwd_root) + else + set -g __fish_prompt_cwd (set_color $fish_color_cwd) + end + end + + echo -n -s "$USER" @ "$__fish_prompt_hostname" ' ' "$__fish_prompt_cwd" (prompt_pwd) "$__fish_prompt_normal" '# ' + + case '*' + + if not set -q __fish_prompt_cwd + set -g __fish_prompt_cwd (set_color $fish_color_cwd) + end + + echo -n -s "$USER" @ "$__fish_prompt_hostname" ' ' "$__fish_prompt_cwd" (prompt_pwd) "$__fish_prompt_normal" '> ' + + end +end |