From ee1c55a625b30f6481415b4325a39a7fda30a30a Mon Sep 17 00:00:00 2001 From: nimec01 <24428341+nimec01@users.noreply.github.com> Date: Mon, 20 Apr 2026 10:53:51 +0200 Subject: [PATCH] Log errors to stderr --- codeworld-server/src/Main.hs | 11 ++++++++--- run.sh | 2 -- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/codeworld-server/src/Main.hs b/codeworld-server/src/Main.hs index 0368a739..9ffd3a57 100644 --- a/codeworld-server/src/Main.hs +++ b/codeworld-server/src/Main.hs @@ -55,13 +55,14 @@ import Model import Network.HTTP.Simple import Ormolu (OrmoluException, defaultConfig, ormolu) import Snap.Core -import Snap.Http.Server (httpServe) -import qualified Snap.Http.Server.Config as S (commandLineConfig, defaultConfig, setPort) +import Snap.Http.Server (httpServe, ConfigLog (ConfigIoLog)) +import qualified Snap.Http.Server.Config as S (commandLineConfig, defaultConfig, setPort, setErrorLog) import Snap.Util.FileServe import Snap.Util.FileUploads import System.Directory import System.FileLock import System.FilePath +import System.IO (stderr) import System.IO.Temp import System.Environment (lookupEnv) import Util @@ -75,12 +76,16 @@ data Context = Context config :: Config } +customErrorLog :: ConfigLog +customErrorLog = ConfigIoLog $ B.hPutStr stderr + main :: IO () main = do cfg <- loadConfig ctx <- makeContext cfg port <- maybe Nothing readMaybe <$> lookupEnv "PORT" :: IO (Maybe Int) - cfg <- S.commandLineConfig ((maybe id (\p -> S.setPort p) port) S.defaultConfig) + let customDefaultConfig = S.setErrorLog customErrorLog ((maybe id (\p -> S.setPort p) port) S.defaultConfig) + cfg <- S.commandLineConfig customDefaultConfig forkIO $ baseVersion >>= buildBaseIfNeeded ctx >> return () httpServe cfg $ (processBody >> site ctx) <|> site ctx diff --git a/run.sh b/run.sh index 519aa457..1fbcda23 100755 --- a/run.sh +++ b/run.sh @@ -26,7 +26,5 @@ rm -rf $(for fn in $(find data/base -atime +20 -regex .*\\.js$ ); do dirname $fn fuser -k -n tcp "${PORT}" -mkdir -p log - export CONFIG_PATH=$(pwd)/config.yaml run . ./build/bin/codeworld-server -p $PORT --no-access-log