
Turned out that the loadOrCreateTrustKey() utility was doing exactly the same as libtrust.LoadOrCreateTrustKey(), so making it a thin wrapped. I kept the tests to verify the behavior, but we could remove them as we only need this for our integration tests. The storage location for the generated key was changed (again as we only need this for some integration tests), so we can remove the TrustKeyPath from the config. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
53 lines
1.4 KiB
Go
53 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"io"
|
|
"path/filepath"
|
|
|
|
"github.com/Microsoft/go-winio/pkg/etwlogrus"
|
|
"github.com/sirupsen/logrus"
|
|
)
|
|
|
|
func runDaemon(opts *daemonOptions) error {
|
|
daemonCli := NewDaemonCli()
|
|
|
|
// On Windows, this may be launching as a service or with an option to
|
|
// register the service.
|
|
stop, runAsService, err := initService(daemonCli)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
if stop {
|
|
return nil
|
|
}
|
|
|
|
// Windows specific settings as these are not defaulted.
|
|
if opts.configFile == "" {
|
|
opts.configFile = filepath.Join(opts.daemonConfig.Root, "config", "daemon.json")
|
|
}
|
|
if runAsService {
|
|
// If Windows SCM manages the service - no need for PID files
|
|
opts.daemonConfig.Pidfile = ""
|
|
} else if opts.daemonConfig.Pidfile == "" {
|
|
opts.daemonConfig.Pidfile = filepath.Join(opts.daemonConfig.Root, "docker.pid")
|
|
}
|
|
|
|
err = daemonCli.start(opts)
|
|
notifyShutdown(err)
|
|
return err
|
|
}
|
|
|
|
func initLogging(stdout, _ io.Writer) {
|
|
// Maybe there is a historic reason why on non-Windows, stderr is used
|
|
// for output. However, on Windows it makes no sense and there is no need.
|
|
logrus.SetOutput(stdout)
|
|
|
|
// Provider ID: {6996f090-c5de-5082-a81e-5841acc3a635}
|
|
// Hook isn't closed explicitly, as it will exist until process exit.
|
|
// GUID is generated based on name - see Microsoft/go-winio/tools/etw-provider-gen.
|
|
if hook, err := etwlogrus.NewHook("Moby"); err == nil {
|
|
logrus.AddHook(hook)
|
|
}
|
|
return
|
|
}
|