aboutsummaryrefslogtreecommitdiff
path: root/sh/profile
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2016-08-19 23:58:25 +1200
committerTom Ryder <tom@sanctum.geek.nz>2016-08-20 00:07:15 +1200
commit88e4b992d90f2a7283058a1a93c388a9576bad5b (patch)
treee1716501ae3f3ebef491065885df56a81eeeb377 /sh/profile
parentRemove debugging code from eds(1) (diff)
downloaddotfiles-88e4b992d90f2a7283058a1a93c388a9576bad5b.tar.gz
dotfiles-88e4b992d90f2a7283058a1a93c388a9576bad5b.zip
Move OLDPWD setting to POSIX sh dir
With an attempt at correct trapping; may still require tweaking
Diffstat (limited to 'sh/profile')
-rw-r--r--sh/profile15
1 files changed, 15 insertions, 0 deletions
diff --git a/sh/profile b/sh/profile
index 5dfe0ef3..7fea250b 100644
--- a/sh/profile
+++ b/sh/profile
@@ -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