12345678910111213141516171819202122232425262728293031323334353637 |
- // +build !windows
- package main
- import (
- "os"
- "os/exec"
- "syscall"
- )
- // CmdDaemon execs dockerd with the same flags
- // TODO: add a deprecation warning?
- func (p DaemonProxy) CmdDaemon(args ...string) error {
- // Use os.Args[1:] so that "global" args are passed to dockerd
- args = stripDaemonArg(os.Args[1:])
- // TODO: check dirname args[0] first
- binaryAbsPath, err := exec.LookPath(daemonBinary)
- if err != nil {
- return err
- }
- return syscall.Exec(
- binaryAbsPath,
- append([]string{daemonBinary}, args...),
- os.Environ())
- }
- // stripDaemonArg removes the `daemon` argument from the list
- func stripDaemonArg(args []string) []string {
- for i, arg := range args {
- if arg == "daemon" {
- return append(args[:i], args[i+1:]...)
- }
- }
- return args
- }
|