X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/4cb8b8dada50dea956900ab8a91829449b2fe6f9..11fc748d4ce1939022c23633444c3ccf3ee59610:/dot/shell-rc diff --git a/dot/shell-rc b/dot/shell-rc index 8742ea8..940f91b 100644 --- a/dot/shell-rc +++ b/dot/shell-rc @@ -25,8 +25,8 @@ __mdw_set_prompt_pieces () { ## Fancy highlighting in some terminals. local bold unbold nl gitcolour rccolour uncolour - local host dir - bold="" unbold="" nl="" gitcolour="" rccolour="" uncolour="" + local host dir more + bold="" unbold="" nl="" gitcolour="" rccolour="" uncolour="" more="" __mdw_set_prompt_hacks ## Choose the right delimiters. Highlight root prompts specially; @@ -61,8 +61,10 @@ __mdw_set_prompt_pieces () { *) sec_l="" sec_r="" esac - ## If this is an schroot environment then point this out. + ## If this is an schroot environment or some other interesting augmented + ## environment then point this out. hqual="$hqual${SCHROOT_CHROOT_NAME+/$SCHROOT_CHROOT_NAME}" + hqual="$hqual${MDW_BUILDENV+/$MDW_BUILDENV}" ## Put together the main pieces. __mdw_prompt_left="$nl$bold$left$sec_l$u$host$hqual$sec_r$dir" @@ -71,23 +73,32 @@ __mdw_set_prompt_pieces () { __mdw_prompt_rc_left="$unbold$rccolour" __mdw_prompt_rc_right="$uncolour$bold" __mdw_prompt_right="$right$unbold" + __mdw_prompt_more=" $more$bold>$unbold " } __mdw_set_prompt () { - __mdw_last_rc=$? - local git rc - if type __git_ps1 >/dev/null 2>&1; then - git="$__mdw_prompt_git_left$(__git_ps1)$__mdw_prompt_git_right" - else - git="" - fi - case $__mdw_last_rc in - 0) rc="" ;; - *) rc="$__mdw_prompt_rc_left rc=$__mdw_last_rc$__mdw_prompt_rc_right" ;; + case "${TERM-dumb}:${INSIDE_EMACS+$INSIDE_EMACS}" in + dumb:) + case $(id -u) in 0) PS1='# ' ;; *) PS1='$ ' ;; esac + PS2='> ' + ;; + *) + __mdw_last_rc=$? + local git rc + if type __git_ps1 >/dev/null 2>&1; then + git="$__mdw_prompt_git_left$(__git_ps1)$__mdw_prompt_git_right" + else + git="" + fi + case $__mdw_last_rc in + 0) rc="" ;; + *) rc="$__mdw_prompt_rc_left rc=$__mdw_last_rc$__mdw_prompt_rc_right" ;; + esac + PS1="$__mdw_prompt_left$git$rc$__mdw_prompt_right" + PS2="$PS1$__mdw_prompt_more" + unset __mdw_last_rc + ;; esac - PS1="$__mdw_prompt_left$git$rc$__mdw_prompt_right" - PS2="$PS1 $bold>$unbold " - unset __mdw_last_rc } __mdw_precmd () { @@ -121,6 +132,8 @@ alias pushtmp='pushd ${TMPDIR-/tmp}' alias e="$EDITOR" alias svn="svnwrap svn" alias @="ssh" +alias make="nice make" +alias gdb="gdb -q" ###-------------------------------------------------------------------------- ### Colour output. @@ -151,6 +164,21 @@ alias egrep="greplike egrep" alias fgrep="greplike fgrep" alias zgrep="greplike zgrep" +## Arrange for `diff' output to be in colour. +export DIFF_COLORS="hd=1:ln=36:ad=32:de=31" +difflike () { + local diff=$1; shift + if [ -t 1 ]; then + command $diff \ + ${DIFF_COLORS+--color=always} \ + ${DIFF_COLORS+--palette="$DIFF_COLORS"} \ + "$@" | mdw-pager + else + command $diff "$@" | cat + fi +} +alias diff="difflike diff" + ###-------------------------------------------------------------------------- ### Other hacks. @@ -329,7 +357,10 @@ path_add "$HOME/bin" ## Set the temporary directory again. (A setuid or setgid program may have ## unhelpfully forgotten this for us.) -case ${TMPDIR+t} in t) ;; *) eval $(tmpdir -b); esac +case ${TMPDIR+t} in + t) ;; + *) if __mdw_programp tmpdir; then eval $(tmpdir -b); fi ;; +esac ## For `root' use -- some simple molly-guards. case $(id -u) in