diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2016-08-19 23:58:25 +1200 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2016-08-20 00:07:15 +1200 |
commit | 88e4b992d90f2a7283058a1a93c388a9576bad5b (patch) | |
tree | e1716501ae3f3ebef491065885df56a81eeeb377 | |
parent | Remove debugging code from eds(1) (diff) | |
download | dotfiles-88e4b992d90f2a7283058a1a93c388a9576bad5b.tar.gz dotfiles-88e4b992d90f2a7283058a1a93c388a9576bad5b.zip |
Move OLDPWD setting to POSIX sh dir
With an attempt at correct trapping; may still require tweaking
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | bash/bash_logout | 3 | ||||
-rw-r--r-- | sh/logout | 2 | ||||
-rw-r--r-- | sh/profile | 15 |
4 files changed, 18 insertions, 3 deletions
@@ -267,6 +267,7 @@ install-sh : check-sh install -m 0755 -d -- \ "$(HOME)"/.profile.d \ "$(HOME)"/.shrc.d + install -pm 0644 -- sh/logout "$(HOME)"/.logout install -pm 0644 -- sh/profile "$(HOME)"/.profile install -pm 0644 -- sh/profile.d/* "$(HOME)"/.profile.d install -pm 0644 -- sh/shrc "$(HOME)"/.shrc diff --git a/bash/bash_logout b/bash/bash_logout index e8137e55..afb088b8 100644 --- a/bash/bash_logout +++ b/bash/bash_logout @@ -12,6 +12,3 @@ fi if ((SHLVL == 1)) ; then clear_console -q 2>/dev/null fi - -# Write PWD to a file if set -printf '%s\n' "$PWD" > "${OLDPWD_FILE:-$HOME/.oldpwd}" diff --git a/sh/logout b/sh/logout new file mode 100644 index 00000000..4da61192 --- /dev/null +++ b/sh/logout @@ -0,0 +1,2 @@ +# Write PWD to a file if set +printf '%s\n' "$PWD" >"${OLDPWD_FILE:-"$HOME"/.oldpwd}" @@ -9,6 +9,21 @@ for sh in "$HOME"/.profile.d/*.sh ; do done unset -v sh +# Trap on exit to run ~/.logout if it exists +logout_trap() { + if [ -f "$HOME"/.logout ] ; then + . "$HOME"/.logout + fi + if [ "$1" != EXIT ] ; then + trap - "$1" + kill "-$1" "$$" + fi +} +for sig in EXIT HUP INT TERM ; do + trap "logout_trap $sig" "$sig" +done +unset -v sig + # If ENV is unset after running those scripts and ~/.shrc exists, set it as ENV if [ -z "$ENV" ] && [ -f "$HOME"/.shrc ] ; then ENV=$HOME/.shrc |