-
Notifications
You must be signed in to change notification settings - Fork 3.3k
/
commands.go
142 lines (122 loc) · 3.2 KB
/
commands.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: BUSL-1.1
package main
import (
"github.com/hashicorp/packer/command"
"github.com/mitchellh/cli"
)
// Commands is the mapping of all the available Packer commands.
var Commands map[string]cli.CommandFactory
// CommandMeta is the Meta to use for the commands. This must be written
// before the CLI is started.
var CommandMeta *command.Meta
const ErrorPrefix = "e:"
const OutputPrefix = "o:"
func init() {
Commands = map[string]cli.CommandFactory{
"build": func() (cli.Command, error) {
return &command.BuildCommand{Meta: *CommandMeta}, nil
},
"console": func() (cli.Command, error) {
return &command.ConsoleCommand{
Meta: *CommandMeta,
}, nil
},
"execute": func() (cli.Command, error) {
return &command.ExecuteCommand{
Meta: *CommandMeta,
}, nil
},
"fix": func() (cli.Command, error) {
return &command.FixCommand{
Meta: *CommandMeta,
}, nil
},
"fmt": func() (cli.Command, error) {
return &command.FormatCommand{
Meta: *CommandMeta,
}, nil
},
"hcl2_upgrade": func() (cli.Command, error) {
return &command.HCL2UpgradeCommand{
Meta: *CommandMeta,
}, nil
},
"init": func() (cli.Command, error) {
return &command.InitCommand{
Meta: *CommandMeta,
}, nil
},
"inspect": func() (cli.Command, error) {
return &command.InspectCommand{
Meta: *CommandMeta,
}, nil
},
"plugins": func() (cli.Command, error) {
return &command.PluginsCommand{
Meta: *CommandMeta,
}, nil
},
"plugins installed": func() (cli.Command, error) {
return &command.PluginsInstalledCommand{
Meta: *CommandMeta,
}, nil
},
"plugins install": func() (cli.Command, error) {
return &command.PluginsInstallCommand{
Meta: *CommandMeta,
}, nil
},
"plugins remove": func() (cli.Command, error) {
return &command.PluginsRemoveCommand{
Meta: *CommandMeta,
}, nil
},
"plugins required": func() (cli.Command, error) {
return &command.PluginsRequiredCommand{
Meta: *CommandMeta,
}, nil
},
"validate": func() (cli.Command, error) {
return &command.ValidateCommand{
Meta: *CommandMeta,
}, nil
},
"version": func() (cli.Command, error) {
return &command.VersionCommand{
Meta: *CommandMeta,
CheckFunc: commandVersionCheck,
}, nil
},
// plugin is essentially an alias to the plugins command
//
// It is not meant to be documented or used outside of simple
// typos, as it's easy to write plugin instead of plugins, so
// we opted not to error, but silently alias the two writings.
"plugin": func() (cli.Command, error) {
return &command.PluginsCommand{
Meta: *CommandMeta,
}, nil
},
"plugin installed": func() (cli.Command, error) {
return &command.PluginsInstalledCommand{
Meta: *CommandMeta,
}, nil
},
"plugin install": func() (cli.Command, error) {
return &command.PluginsInstallCommand{
Meta: *CommandMeta,
}, nil
},
"plugin remove": func() (cli.Command, error) {
return &command.PluginsRemoveCommand{
Meta: *CommandMeta,
}, nil
},
"plugin required": func() (cli.Command, error) {
return &command.PluginsRequiredCommand{
Meta: *CommandMeta,
}, nil
},
}
}