[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dmd] 02/03: services: Use / as the execution directory when $HOME is no
From: |
Ludovic Courtès |
Subject: |
[dmd] 02/03: services: Use / as the execution directory when $HOME is nonexistent. |
Date: |
Fri, 04 Jul 2014 16:59:48 +0000 |
civodul pushed a commit to branch master
in repository dmd.
commit 64a6c8c9f791bbe648efabb0fc13020ef0dd572b
Author: Ludovic Courtès <address@hidden>
Date: Fri Jul 4 15:26:39 2014 +0200
services: Use / as the execution directory when $HOME is nonexistent.
* modules/dmd/service.scm (default-service-directory): Add
'ensure-valid' procedure and use it.
* tests/respawn.sh: Add some debugging output.
---
modules/dmd/service.scm | 14 ++++++++++----
tests/respawn.sh | 4 +++-
2 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/modules/dmd/service.scm b/modules/dmd/service.scm
index a706358..ffa3a68 100644
--- a/modules/dmd/service.scm
+++ b/modules/dmd/service.scm
@@ -552,12 +552,18 @@
(define (default-service-directory)
"Return the default current directory from which a service is started."
+ (define (ensure-valid directory)
+ (if (and (file-exists? directory)
+ (file-is-directory? directory))
+ directory
+ "/"))
+
(if (zero? (getuid))
"/"
- (or (getenv "HOME")
- (and=> (catch-system-error (getpw (getuid)))
- passwd:dir)
- (getcwd))))
+ (ensure-valid (or (getenv "HOME")
+ (and=> (catch-system-error (getpw (getuid)))
+ passwd:dir)
+ (getcwd)))))
(define (default-environment-variables)
"Return the list of environment variable name/value pairs that should be
diff --git a/tests/respawn.sh b/tests/respawn.sh
index 6a0d88b..d88d33e 100644
--- a/tests/respawn.sh
+++ b/tests/respawn.sh
@@ -29,7 +29,8 @@ pid="t-pid-$$"
deco="deco -s $socket"
-trap "rm -f $socket $conf $stamp $log $pid $service1_pid $service2_pid ;
+trap "cat $log || true ;
+ rm -f $socket $conf $stamp $log $pid $service1_pid $service2_pid ;
test -f $pid && kill \`cat $pid\` || true ;
test -f $service1_pid && kill \`cat $service1_pid\` || true ;
test -f $service2_pid && kill \`cat $service2_pid\` || true ;
@@ -90,6 +91,7 @@ dmd_pid="`cat $pid`"
kill -0 $dmd_pid
test -S "$socket"
+$deco status dmd
$deco status test1 | grep started
$deco status test2 | grep started