summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJoey Hess <joeyh@joeyh.name>2017-05-09 16:27:45 -0400
committerSean Whitton <spwhitton@spwhitton.name>2017-05-09 13:42:58 -0700
commit34575d754b729b91c4d7e475ea1aa6a119da8f32 (patch)
tree3dfaae077cd1c2a28a1125c30dead706da03f2d7
parent24ac3c83db16fe6d52a326b77b1c0e4a26cb1a0a (diff)
downloaddebug-me-34575d754b729b91c4d7e475ea1aa6a119da8f32.tar.gz
Server: DEBUG_ME_FROM_EMAIL can be used to specify the --from-email.
This is used in debug-me.default to encourage configuring it.
-rw-r--r--CHANGELOG4
-rw-r--r--Server.hs11
-rw-r--r--debug-me.12
-rw-r--r--debug-me.default6
4 files changed, 19 insertions, 4 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 35658a3..9be378e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,8 +2,8 @@ debug-me (1.20170506) UNRELEASED; urgency=medium
* Server: Use "postmaster" as default --from-email address
rather than "unknown@server".
- * debug-me.default: Include a --from-email setting,
- to encourage it be configured.
+ * Server: DEBUG_ME_FROM_EMAIL can be used to specify the --from-email.
+ This is used in debug-me.default to encourage configuring it.
Thanks, Sean Whitton.
* Avoid crash when --use-server is given an url that does not
include a path.
diff --git a/Server.hs b/Server.hs
index ce4242c..70ded97 100644
--- a/Server.hs
+++ b/Server.hs
@@ -33,6 +33,7 @@ import System.IO
import System.Directory
import System.Mem.Weak
import Network.Mail.Mime
+import System.Environment
type ServerState = M.Map SessionID Session
@@ -95,7 +96,9 @@ closeSession :: Session -> STM ()
closeSession (Session bchan _ _) = closeTMChan bchan
server :: ServerOpts -> IO ()
-server o = runSettings settings . app o =<< newServerState
+server o = do
+ o' <- checkEnv o
+ runSettings settings . app o' =<< newServerState
where
settings =
-- Prefer IPv6 but allow IPv4 as well
@@ -105,6 +108,12 @@ server o = runSettings settings . app o =<< newServerState
setPort (serverPort o) $
defaultSettings
+checkEnv :: ServerOpts -> IO ServerOpts
+checkEnv o = go <$> lookupEnv "DEBUG_ME_FROM_EMAIL"
+ where
+ go Nothing = o
+ go (Just email) = o { serverEmail = Just (T.pack email) }
+
app :: ServerOpts -> TVar ServerState -> Application
app o ssv = websocketsOr connectionOptions (websocketApp o ssv) webapp
where
diff --git a/debug-me.1 b/debug-me.1
index bd1cfb0..0ffb632 100644
--- a/debug-me.1
+++ b/debug-me.1
@@ -88,6 +88,8 @@ Specify a port for the debug-me server to listen to.
.IP "--from-email address"
The server will email session logs to users. It's a good idea to
provide a real email address, otherwise a dummy one will be used.
+You can also set the enviroment variable DEBUG_ME_FROM_EMAIL to configure
+this.
.IP "--delete-old-logs"
Normally the server will retain old log files so that users and developers
can refer to them. This option makes it delete the log file once the
diff --git a/debug-me.default b/debug-me.default
index dded3e5..219b318 100644
--- a/debug-me.default
+++ b/debug-me.default
@@ -1,2 +1,6 @@
+# Configure the email address that debug-me uses when emailing logs to
+# users.
+DEBUG_ME_FROM_EMAIL=postmaster
+
# Parameters to pass to debug-me when it's started as a daemon.
-DAEMON_PARAMS="--server /var/log/debug-me/ --delete-old-logs --from-email postmaster"
+DAEMON_PARAMS="--server /var/log/debug-me/ --delete-old-logs"