summaryrefslogtreecommitdiff
path: root/contrib/cgi/spartan.go
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/cgi/spartan.go')
-rw-r--r--contrib/cgi/spartan.go10
1 files changed, 9 insertions, 1 deletions
diff --git a/contrib/cgi/spartan.go b/contrib/cgi/spartan.go
index 6994466..272bd92 100644
--- a/contrib/cgi/spartan.go
+++ b/contrib/cgi/spartan.go
@@ -1,11 +1,13 @@
package cgi
import (
+ "bytes"
"context"
"fmt"
"strings"
sr "tildegit.org/tjp/sliderule"
+ "tildegit.org/tjp/sliderule/logging"
"tildegit.org/tjp/sliderule/spartan"
)
@@ -29,11 +31,17 @@ func SpartanCGIDirectory(pathRoot, fsRoot string) sr.Handler {
return nil
}
- stdout, exitCode, err := RunCGI(ctx, request, filepath, pathinfo)
+ stderr := &bytes.Buffer{}
+ stdout, exitCode, err := RunCGI(ctx, request, filepath, pathinfo, stderr)
if err != nil {
return spartan.ServerError(err)
}
if exitCode != 0 {
+ ctx.Value("warnlog").(logging.Logger).Log(
+ "msg", "cgi exited with non-zero exit code",
+ "code", exitCode,
+ "stderr", stderr.String(),
+ )
return spartan.ServerError(fmt.Errorf("CGI process exited with status %d", exitCode))
}