summaryrefslogtreecommitdiff
path: root/cmd/podman/system/service.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/podman/system/service.go')
-rw-r--r--cmd/podman/system/service.go37
1 files changed, 20 insertions, 17 deletions
diff --git a/cmd/podman/system/service.go b/cmd/podman/system/service.go
index 2a2b1984f..78062d135 100644
--- a/cmd/podman/system/service.go
+++ b/cmd/podman/system/service.go
@@ -9,6 +9,7 @@ import (
"syscall"
"time"
+ "github.com/containers/common/pkg/completion"
"github.com/containers/podman/v2/cmd/podman/registry"
"github.com/containers/podman/v2/pkg/domain/entities"
"github.com/containers/podman/v2/pkg/rootless"
@@ -26,12 +27,13 @@ Enable a listening service for API access to Podman commands.
`
srvCmd = &cobra.Command{
- Use: "service [options] [URI]",
- Args: cobra.MaximumNArgs(1),
- Short: "Run API service",
- Long: srvDescription,
- RunE: service,
- Example: `podman system service --time=0 unix:///tmp/podman.sock`,
+ Use: "service [options] [URI]",
+ Args: cobra.MaximumNArgs(1),
+ Short: "Run API service",
+ Long: srvDescription,
+ RunE: service,
+ ValidArgsFunction: completion.AutocompleteDefault,
+ Example: `podman system service --time=0 unix:///tmp/podman.sock`,
}
srvArgs = struct {
@@ -48,7 +50,11 @@ func init() {
})
flags := srvCmd.Flags()
- flags.Int64VarP(&srvArgs.Timeout, "time", "t", 5, "Time until the service session expires in seconds. Use 0 to disable the timeout")
+
+ timeFlagName := "time"
+ flags.Int64VarP(&srvArgs.Timeout, timeFlagName, "t", 5, "Time until the service session expires in seconds. Use 0 to disable the timeout")
+ _ = srvCmd.RegisterFlagCompletionFunc(timeFlagName, completion.AutocompleteNone)
+
flags.BoolVar(&srvArgs.Varlink, "varlink", false, "Use legacy varlink service instead of REST. Unit of --time changes from seconds to milliseconds.")
_ = flags.MarkDeprecated("varlink", "valink API is deprecated.")
@@ -131,20 +137,17 @@ func resolveAPIURI(_url []string) (string, error) {
if srvArgs.Varlink {
socketName = "io.podman"
}
- socketDir := filepath.Join(xdg, "podman", socketName)
- if _, err := os.Stat(filepath.Dir(socketDir)); err != nil {
- if os.IsNotExist(err) {
- if err := os.Mkdir(filepath.Dir(socketDir), 0755); err != nil {
- return "", err
- }
- } else {
- return "", err
- }
+ socketPath := filepath.Join(xdg, "podman", socketName)
+ if err := os.MkdirAll(filepath.Dir(socketPath), 0700); err != nil {
+ return "", err
}
- return "unix:" + socketDir, nil
+ return "unix:" + socketPath, nil
case srvArgs.Varlink:
return registry.DefaultVarlinkAddress, nil
default:
+ if err := os.MkdirAll(filepath.Dir(registry.DefaultRootAPIPath), 0700); err != nil {
+ return "", err
+ }
return registry.DefaultRootAPIAddress, nil
}
}