summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Mike Burns <mburns@thoughtbot.com>2018-03-30 10:39:41 -0400
committerGravatar Mike Burns <mburns@thoughtbot.com>2018-07-06 10:16:13 -0400
commit693b5922234f070a133ccacdd87fc0ede442d5a7 (patch)
treeaf98c292551526a44ee2119fd9d6aca94a157132
parente8c9198ed7a16ac319f8179bf9a9887931e9249d (diff)
Set the LOGNAME from whoami
Well, $LOGNAME is defined by POSIX (see a801c4c58902cae7b835d890487edc39bd7da142) but it's not appearing in reality under clean environments: ~% env -i /bin/bash mike:/home/mike$ echo $LOGNAME mike:/home/mike$ exit ~% env -i /bin/dash $ echo $LOGNAME $ exit ~% env -i /bin/ksh $ echo $LOGNAME $ exit ~% env -i /usr/bin/zsh ~% echo $LOGNAME mike ~% exit Fall back to whoami(1) when $LOGNAME is not set. Modify one of the tests to run with a restricted environment in order to test this. I had tried modifying the test-driver to run all tests in a restricted environment but the test-driver script is generated by Automake. Closes #165.
-rw-r--r--share/rcm.sh.in4
-rw-r--r--test/rcup-hooks.t4
2 files changed, 6 insertions, 2 deletions
diff --git a/share/rcm.sh.in b/share/rcm.sh.in
index 80e9e91..d0387e2 100644
--- a/share/rcm.sh.in
+++ b/share/rcm.sh.in
@@ -13,6 +13,10 @@ MKDIR=mkdir
INSTALL=rcup
ROOT_DIR="$HOME"
+if [ -z "$LOGNAME" ]; then
+ LOGNAME=$(whoami)
+fi
+
ln_v() {
$VERBOSE "'$1' -> '$2'"
ln -s "$1" "$2"
diff --git a/test/rcup-hooks.t b/test/rcup-hooks.t
index 8890f7b..15c6790 100644
--- a/test/rcup-hooks.t
+++ b/test/rcup-hooks.t
@@ -9,10 +9,10 @@ Pre-up and post-up hooks should run by default
$ echo 'echo "example" > /tmp/test' > .dotfiles/hooks/pre-up
> echo 'cat /tmp/test; rm /tmp/test' > .dotfiles/hooks/post-up
- $ rcup
+ $ /usr/bin/env -i PATH="$PATH" HOME="$HOME" RCRC="$RCRC" RCM_LIB="$RCM_LIB" rcup
example
Ensure that hooks run when output of lsrc is non-empty
$ touch .dotfiles/testrc
- > rcup
+ $ /usr/bin/env -i PATH="$PATH" HOME="$HOME" RCRC="$RCRC" RCM_LIB="$RCM_LIB" rcup
example