Browse code

Add accept-permissions flag for install.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>

Anusha Ragunathan authored on 2016/06/16 02:29:01
Showing 1 changed files
... ...
@@ -13,21 +13,31 @@ import (
13 13
 	"golang.org/x/net/context"
14 14
 )
15 15
 
16
+type pluginOptions struct {
17
+	name       string
18
+	grantPerms bool
19
+}
20
+
16 21
 func newInstallCommand(dockerCli *client.DockerCli) *cobra.Command {
22
+	var options pluginOptions
17 23
 	cmd := &cobra.Command{
18 24
 		Use:   "install",
19 25
 		Short: "Install a plugin",
20 26
 		Args:  cli.RequiresMinArgs(1), // TODO: allow for set args
21 27
 		RunE: func(cmd *cobra.Command, args []string) error {
22
-			return runInstall(dockerCli, args[0], args[1:])
28
+			options.name = args[0]
29
+			return runInstall(dockerCli, options)
23 30
 		},
24 31
 	}
25 32
 
33
+	flags := cmd.Flags()
34
+	flags.BoolVar(&options.grantPerms, "grant-permissions", true, "grant all permissions necessary to run the plugin")
35
+
26 36
 	return cmd
27 37
 }
28 38
 
29
-func runInstall(dockerCli *client.DockerCli, name string, args []string) error {
30
-	named, err := reference.ParseNamed(name) // FIXME: validate
39
+func runInstall(dockerCli *client.DockerCli, options pluginOptions) error {
40
+	named, err := reference.ParseNamed(options.name) // FIXME: validate
31 41
 	if err != nil {
32 42
 		return err
33 43
 	}
... ...
@@ -46,6 +56,6 @@ func runInstall(dockerCli *client.DockerCli, name string, args []string) error {
46 46
 	if err != nil {
47 47
 		return err
48 48
 	}
49
-	// TODO: pass acceptAllPermissions and noEnable flag
50
-	return dockerCli.Client().PluginInstall(ctx, ref.String(), encodedAuth, false, false, dockerCli.In(), dockerCli.Out())
49
+	// TODO: pass noEnable flag
50
+	return dockerCli.Client().PluginInstall(ctx, ref.String(), encodedAuth, options.grantPerms, false, dockerCli.In(), dockerCli.Out())
51 51
 }