Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( Config = &cobra.Command{ Use: "config [OPTIONS]", Short: "Validate and view the config file", Args: cobra.NoArgs, RunE: func(_ *cobra.Command, _ []string) error { rootless, err := internal.Rootless() if err != nil { return err } var cmd *system.Cmd if config.GetBool("pull") { cmd = system.Command("docker") cmd.Flag("host", internal.Host) cmd.Flag("log-level", viper.GetString("log-level")) cmd.Arg("pull") if strings.ContainsAny(config.GetString("tag"), "/:") { cmd.Arg(config.GetString("tag")) } else { cmd.Arg(fmt.Sprintf("%s:%s", "inaccel/fpga-operator", config.GetString("tag"))) } cmd.Std(nil, os.Stdout, os.Stderr) if err := cmd.Run(viper.GetBool("debug")); err != nil { return err } } cmd = system.Command("docker") cmd.Flag("host", internal.Host) cmd.Flag("log-level", viper.GetString("log-level")) cmd.Arg("run") cmd.Flag("env", fmt.Sprintf("%s=%s", "DOCKER_HOST_PATH", internal.Host.Path)) cmd.Flag("env", fmt.Sprintf("%s=%s", "DOCKER_HOST_SCHEME", internal.Host.Scheme)) if rootless { cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_CACHE_HOME", xdg.CacheHome)) cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_CONFIG_DIRS", strings.Join(xdg.ConfigDirs, ":"))) cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_CONFIG_HOME", xdg.ConfigHome)) cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_DATA_DIRS", strings.Join(xdg.DataDirs, ":"))) cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_DATA_HOME", xdg.DataHome)) cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_RUNTIME_DIR", xdg.RuntimeDir)) cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_STATE_HOME", xdg.StateHome)) } cmd.Flag("env", config.GetStringSlice("env")) if len(config.GetString("env-file")) > 0 { cmd.Flag("env-file", config.GetString("env-file")) } else if _, err := os.Stat(".env"); err == nil { cmd.Flag("env-file", ".env") } cmd.Flag("interactive", true) cmd.Flag("rm", true) cmd.Flag("volume", fmt.Sprintf("%s:%s", internal.Host.Path, "/var/run/docker.sock")) if strings.ContainsAny(config.GetString("tag"), "/:") { cmd.Arg(config.GetString("tag")) } else { cmd.Arg(fmt.Sprintf("%s:%s", "inaccel/fpga-operator", config.GetString("tag"))) } cmd.Flag("ansi", "always") cmd.Arg("config") cmd.Flag("profiles", config.GetBool("profiles")) cmd.Flag("quiet", config.GetBool("quiet")) cmd.Flag("services", config.GetBool("services")) cmd.Std(nil, os.Stdout, os.Stderr) if err := cmd.Run(viper.GetBool("debug")); err != nil { return err } return nil }, } )
View Source
var ( Down = &cobra.Command{ Use: "down [OPTIONS] [SERVICE]", Short: "Stop and remove containers, networks and volumes", Args: cobra.MaximumNArgs(1), PreRunE: func(_ *cobra.Command, args []string) error { var cmd *system.Cmd cmd = system.Command("docker") cmd.Flag("host", internal.Host) cmd.Flag("log-level", viper.GetString("log-level")) cmd.Arg("ps") cmd.Flag("filter", "label=com.docker.compose.oneoff=False") cmd.Flag("filter", fmt.Sprintf("label=com.docker.compose.project=%s", down.GetString("project-name"))) if len(args) > 0 { cmd.Flag("filter", fmt.Sprintf("label=com.docker.compose.service=%s", args[0])) } cmd.Flag("format", `{{ .ID }}`) cmd.Std(nil, nil, os.Stderr) out, err := cmd.Out(viper.GetBool("debug")) if err != nil { return err } ids := strings.Fields(out) if len(ids) > 0 { cmd = system.Command("docker") cmd.Flag("host", internal.Host) cmd.Flag("log-level", viper.GetString("log-level")) cmd.Arg("stop") cmd.Arg(ids...) cmd.Std(nil, nil, os.Stderr) if err := cmd.Run(viper.GetBool("debug")); err != nil { return err } } return nil }, RunE: func(_ *cobra.Command, args []string) error { var cmd *system.Cmd cmd = system.Command("docker") cmd.Flag("host", internal.Host) cmd.Flag("log-level", viper.GetString("log-level")) cmd.Arg("system", "prune") cmd.Flag("all", true) cmd.Flag("filter", fmt.Sprintf("label=com.docker.compose.project=%s", down.GetString("project-name"))) cmd.Flag("force", true) cmd.Std(nil, nil, os.Stderr) if err := cmd.Run(viper.GetBool("debug")); err != nil { return err } cmd = system.Command("docker") cmd.Flag("host", internal.Host) cmd.Flag("log-level", viper.GetString("log-level")) cmd.Arg("volume", "ls") cmd.Flag("filter", "dangling=true") cmd.Flag("filter", fmt.Sprintf("label=com.docker.compose.project=%s", down.GetString("project-name"))) cmd.Flag("format", `{{ .Name }}`) cmd.Std(nil, nil, os.Stderr) out, err := cmd.Out(viper.GetBool("debug")) if err != nil { return err } names := strings.Fields(out) if len(names) > 0 { cmd = system.Command("docker") cmd.Flag("host", internal.Host) cmd.Flag("log-level", viper.GetString("log-level")) cmd.Arg("volume", "rm") cmd.Arg(names...) cmd.Std(nil, nil, os.Stderr) if err := cmd.Run(viper.GetBool("debug")); err != nil { return err } } return nil }, } )
View Source
var ( Exec = &cobra.Command{ Use: "exec [OPTIONS] COMMAND [ARG...]", Short: "Execute a command in a running container", Args: cobra.ArbitraryArgs, PreRunE: func(_ *cobra.Command, args []string) error { var cmd *system.Cmd if len(exec.GetString("service")) == 0 { cmd = system.Command("docker") cmd.Flag("host", internal.Host) cmd.Flag("log-level", viper.GetString("log-level")) cmd.Arg("ps") cmd.Flag("all", true) cmd.Flag("filter", fmt.Sprintf("label=com.docker.compose.container-number=%d", exec.GetInt("index"))) cmd.Flag("filter", "label=com.docker.compose.oneoff=False") cmd.Flag("filter", fmt.Sprintf("label=com.docker.compose.project=%s", exec.GetString("project-name"))) cmd.Flag("filter", "label=com.inaccel.docker.default-exec-service=True") cmd.Flag("format", `{{ .Label "com.docker.compose.service" }}`) cmd.Std(nil, nil, os.Stderr) out, err := cmd.Out(viper.GetBool("debug")) if err != nil { return err } services := strings.Fields(out) if len(services) > 0 { exec.Set("service", services[0]) } else { return fmt.Errorf("Error: No service (%d) found for %s", exec.GetInt("index"), exec.GetString("project-name")) } } return nil }, RunE: func(_ *cobra.Command, args []string) error { var cmd *system.Cmd if err := cobra.MinimumNArgs(1)(nil, args); err != nil { cmd = system.Command("docker") cmd.Flag("host", internal.Host) cmd.Flag("log-level", viper.GetString("log-level")) cmd.Arg("inspect") cmd.Flag("format", `{{ index .Config.Labels "com.inaccel.docker.default-exec-command" }}`) cmd.Arg(fmt.Sprintf("%s_%s_%d", exec.GetString("project-name"), exec.GetString("service"), exec.GetInt("index"))) cmd.Std(nil, nil, os.Stderr) out, err := cmd.Out(viper.GetBool("debug")) if err != nil { return err } args = strings.Fields(out) if err := cobra.MinimumNArgs(1)(nil, args); err != nil { return err } } cmd = system.Command("docker") cmd.Flag("host", internal.Host) cmd.Flag("log-level", viper.GetString("log-level")) cmd.Arg("exec") cmd.Flag("interactive", true) cmd.Flag("tty", true) cmd.Arg(fmt.Sprintf("%s_%s_%d", exec.GetString("project-name"), exec.GetString("service"), exec.GetInt("index"))) cmd.Arg(args...) cmd.Std(os.Stdin, os.Stdout, os.Stderr) if err := cmd.Run(viper.GetBool("debug")); err != nil { return err } return nil }, } )
View Source
var ( Logs = &cobra.Command{ Use: "logs [OPTIONS] [PATTERN]", Short: "View output from containers", Args: cobra.MaximumNArgs(1), PreRunE: func(_ *cobra.Command, args []string) error { var cmd *system.Cmd if len(logs.GetString("service")) == 0 { cmd = system.Command("docker") cmd.Flag("host", internal.Host) cmd.Flag("log-level", viper.GetString("log-level")) cmd.Arg("ps") cmd.Flag("all", true) cmd.Flag("filter", fmt.Sprintf("label=com.docker.compose.container-number=%d", logs.GetInt("index"))) cmd.Flag("filter", "label=com.docker.compose.oneoff=False") cmd.Flag("filter", fmt.Sprintf("label=com.docker.compose.project=%s", logs.GetString("project-name"))) cmd.Flag("filter", "label=com.inaccel.docker.default-logs-service=True") cmd.Flag("format", `{{ .Label "com.docker.compose.service" }}`) cmd.Std(nil, nil, os.Stderr) out, err := cmd.Out(viper.GetBool("debug")) if err != nil { return err } services := strings.Fields(out) if len(services) > 0 { logs.Set("service", services[0]) } else { return fmt.Errorf("Error: No service (%d) found for %s", logs.GetInt("index"), logs.GetString("project-name")) } } return nil }, RunE: func(_ *cobra.Command, args []string) error { var cmd *system.Cmd cmd = system.Command("docker") cmd.Flag("host", internal.Host) cmd.Flag("log-level", viper.GetString("log-level")) cmd.Arg("logs") cmd.Flag("follow", logs.GetBool("follow")) cmd.Flag("tail", logs.GetString("tail")) cmd.Arg(fmt.Sprintf("%s_%s_%d", logs.GetString("project-name"), logs.GetString("service"), logs.GetInt("index"))) switch len(args) { case 0: cmd.Std(nil, os.Stdout, os.Stderr) case 1: pattern, err := grep.Compile(args[0]) if err != nil { return err } stdout := pattern.WriteCloser(os.Stdout, !logs.GetBool("no-color")) defer stdout.Close() cmd.Std(nil, stdout, os.Stderr) } if err := cmd.Run(viper.GetBool("debug")); err != nil { return err } return nil }, } )
View Source
var ( Ps = &cobra.Command{ Use: "ps [OPTIONS]", Short: "List containers", Args: cobra.NoArgs, RunE: func(_ *cobra.Command, _ []string) error { var cmd *system.Cmd cmd = system.Command("docker") cmd.Flag("host", internal.Host) cmd.Flag("log-level", viper.GetString("log-level")) cmd.Arg("ps") cmd.Flag("all", true) cmd.Flag("filter", "label=com.docker.compose.oneoff=False") cmd.Flag("filter", fmt.Sprintf("label=com.docker.compose.project=%s", ps.GetString("project-name"))) cmd.Flag("format", `table {{ .ID }}\t{{ .Image }}\t{{ .RunningFor }}\t{{ .Status }}\t{{ if eq ( .Label "com.docker.compose.service" ) "service" }}SERVICE{{ else }}{{ .Label "com.docker.compose.service" }}{{ end }}\t{{ if eq ( .Label "com.docker.compose.container-number" ) "container number" }}INDEX{{ else }}{{ .Label "com.docker.compose.container-number" }}{{ end }}`) cmd.Flag("no-trunc", ps.GetBool("no-trunc")) cmd.Flag("quiet", ps.GetBool("quiet")) cmd.Std(nil, os.Stdout, os.Stderr) if err := cmd.Run(viper.GetBool("debug")); err != nil { return err } return nil }, } )
View Source
var ( Run = &cobra.Command{ Use: "run [OPTIONS] SERVICE [COMMAND] [ARGS...]", Short: "Run a one-off command", Args: cobra.MinimumNArgs(1), RunE: func(_ *cobra.Command, args []string) error { rootless, err := internal.Rootless() if err != nil { return err } var cmd *system.Cmd if run.GetBool("pull") { cmd = system.Command("docker") cmd.Flag("host", internal.Host) cmd.Flag("log-level", viper.GetString("log-level")) cmd.Arg("pull") if strings.ContainsAny(run.GetString("tag"), "/:") { cmd.Arg(run.GetString("tag")) } else { cmd.Arg(fmt.Sprintf("%s:%s", "inaccel/fpga-operator", run.GetString("tag"))) } cmd.Std(nil, os.Stdout, os.Stderr) if err := cmd.Run(viper.GetBool("debug")); err != nil { return err } } cmd = system.Command("docker") cmd.Flag("host", internal.Host) cmd.Flag("log-level", viper.GetString("log-level")) cmd.Arg("run") cmd.Flag("env", fmt.Sprintf("%s=%s", "DOCKER_HOST_PATH", internal.Host.Path)) cmd.Flag("env", fmt.Sprintf("%s=%s", "DOCKER_HOST_SCHEME", internal.Host.Scheme)) if rootless { cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_CACHE_HOME", xdg.CacheHome)) cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_CONFIG_DIRS", strings.Join(xdg.ConfigDirs, ":"))) cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_CONFIG_HOME", xdg.ConfigHome)) cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_DATA_DIRS", strings.Join(xdg.DataDirs, ":"))) cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_DATA_HOME", xdg.DataHome)) cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_RUNTIME_DIR", xdg.RuntimeDir)) cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_STATE_HOME", xdg.StateHome)) } cmd.Flag("env", run.GetStringSlice("env")) if len(run.GetString("env-file")) > 0 { cmd.Flag("env-file", run.GetString("env-file")) } else if _, err := os.Stat(".env"); err == nil { cmd.Flag("env-file", ".env") } cmd.Flag("interactive", true) cmd.Flag("rm", true) cmd.Flag("tty", true) cmd.Flag("volume", fmt.Sprintf("%s:%s", internal.Host.Path, "/var/run/docker.sock")) if strings.ContainsAny(run.GetString("tag"), "/:") { cmd.Arg(run.GetString("tag")) } else { cmd.Arg(fmt.Sprintf("%s:%s", "inaccel/fpga-operator", run.GetString("tag"))) } cmd.Flag("ansi", "always") cmd.Flag("project-name", run.GetString("project-name")) cmd.Arg("run") cmd.Flag("rm", true) cmd.Flag("service-ports", true) cmd.Arg(args...) cmd.Std(os.Stdin, os.Stdout, os.Stderr) if err := cmd.Run(viper.GetBool("debug")); err != nil { return err } return nil }, } )
View Source
var ( Up = &cobra.Command{ Use: "up [OPTIONS] [SERVICE]", Short: "Create and start containers", Args: cobra.MaximumNArgs(1), RunE: func(_ *cobra.Command, args []string) error { rootless, err := internal.Rootless() if err != nil { return err } var cmd *system.Cmd if up.GetBool("pull") { cmd = system.Command("docker") cmd.Flag("host", internal.Host) cmd.Flag("log-level", viper.GetString("log-level")) cmd.Arg("pull") if strings.ContainsAny(up.GetString("tag"), "/:") { cmd.Arg(up.GetString("tag")) } else { cmd.Arg(fmt.Sprintf("%s:%s", "inaccel/fpga-operator", up.GetString("tag"))) } cmd.Std(nil, os.Stdout, os.Stderr) if err := cmd.Run(viper.GetBool("debug")); err != nil { return err } } cmd = system.Command("docker") cmd.Flag("host", internal.Host) cmd.Flag("log-level", viper.GetString("log-level")) cmd.Arg("run") cmd.Flag("env", fmt.Sprintf("%s=%s", "DOCKER_HOST_PATH", internal.Host.Path)) cmd.Flag("env", fmt.Sprintf("%s=%s", "DOCKER_HOST_SCHEME", internal.Host.Scheme)) if rootless { cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_CACHE_HOME", xdg.CacheHome)) cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_CONFIG_DIRS", strings.Join(xdg.ConfigDirs, ":"))) cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_CONFIG_HOME", xdg.ConfigHome)) cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_DATA_DIRS", strings.Join(xdg.DataDirs, ":"))) cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_DATA_HOME", xdg.DataHome)) cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_RUNTIME_DIR", xdg.RuntimeDir)) cmd.Flag("env", fmt.Sprintf("%s=%s", "XDG_STATE_HOME", xdg.StateHome)) } cmd.Flag("env", up.GetStringSlice("env")) if len(up.GetString("env-file")) > 0 { cmd.Flag("env-file", up.GetString("env-file")) } else if _, err := os.Stat(".env"); err == nil { cmd.Flag("env-file", ".env") } cmd.Flag("interactive", true) cmd.Flag("rm", true) cmd.Flag("volume", fmt.Sprintf("%s:%s", internal.Host.Path, "/var/run/docker.sock")) if strings.ContainsAny(up.GetString("tag"), "/:") { cmd.Arg(up.GetString("tag")) } else { cmd.Arg(fmt.Sprintf("%s:%s", "inaccel/fpga-operator", up.GetString("tag"))) } cmd.Flag("ansi", "always") cmd.Flag("profile", up.GetStringSlice("profile")) cmd.Flag("project-name", up.GetString("project-name")) cmd.Arg("up") cmd.Flag("detach", true) if len(args) > 0 { cmd.Arg(args[0]) } cmd.Std(nil, os.Stdout, os.Stderr) if err := cmd.Run(viper.GetBool("debug")); err != nil { return err } return nil }, } )
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.