opnsense-ports/devel/gitlab-runner/files/patch-helpers_service_simple.go
Franco Fichtner de5f07e55f */*: sync with upstream
Taken from: HardenedBSD
2021-07-26 14:27:30 +02:00

66 lines
2.2 KiB
Go

--- helpers/service/simple.go.orig 2021-07-20 11:41:09 UTC
+++ helpers/service/simple.go
@@ -6,6 +6,8 @@ import (
"os/signal"
"syscall"
+ "fmt"
+ "log/syslog"
"github.com/kardianos/service"
)
@@ -25,6 +27,39 @@ type SimpleService struct {
c *service.Config
}
+// Begin copy from /vendor/github.com/ayufan/golang-kardianos-service/service_unix.go
+type sysLogger struct {
+ *syslog.Writer
+ errs chan<- error
+}
+
+func (s sysLogger) send(err error) error {
+ if err != nil && s.errs != nil {
+ s.errs <- err
+ }
+ return err
+}
+
+func (s sysLogger) Error(v ...interface{}) error {
+ return s.send(s.Writer.Err(fmt.Sprint(v...)))
+}
+func (s sysLogger) Warning(v ...interface{}) error {
+ return s.send(s.Writer.Warning(fmt.Sprint(v...)))
+}
+func (s sysLogger) Info(v ...interface{}) error {
+ return s.send(s.Writer.Info(fmt.Sprint(v...)))
+}
+func (s sysLogger) Errorf(format string, a ...interface{}) error {
+ return s.send(s.Writer.Err(fmt.Sprintf(format, a...)))
+}
+func (s sysLogger) Warningf(format string, a ...interface{}) error {
+ return s.send(s.Writer.Warning(fmt.Sprintf(format, a...)))
+}
+func (s sysLogger) Infof(format string, a ...interface{}) error {
+ return s.send(s.Writer.Info(fmt.Sprintf(format, a...)))
+}
+// End copy
+
// Run should be called shortly after the program entry point.
// After Interface.Stop has finished running, Run will stop blocking.
// After Run stops blocking, the program must exit shortly after.
@@ -86,7 +121,13 @@ func (s *SimpleService) Logger(errs chan<- error) (ser
// SystemLogger opens and returns a system logger. If errs is non-nil errors
// will be sent on errs as well as returned from Logger's functions.
func (s *SimpleService) SystemLogger(errs chan<- error) (service.Logger, error) {
- return nil, ErrNotSupported
+ // Begin copy from vendor/github.com/ayufan/golang-kardianos-service/service_unix.go
+ w, err := syslog.New(syslog.LOG_INFO, s.c.Name)
+ if err != nil {
+ return nil, err
+ }
+ return sysLogger{w, errs}, nil
+ // End copy
}
// String displays the name of the service. The display name if present,