9
9
"regexp"
10
10
11
11
"github.com/pkg/errors"
12
+ "github.com/samber/lo"
12
13
"github.com/spf13/cobra"
13
14
14
15
"go.jetpack.io/devbox/internal/boxcli/usererr"
@@ -34,8 +35,9 @@ type GenerateReadmeCmdFlags struct {
34
35
}
35
36
36
37
type GenerateAliasCmdFlags struct {
37
- config configFlags
38
- prefix string
38
+ config configFlags
39
+ prefix string
40
+ noPrefix bool
39
41
}
40
42
41
43
func generateCmd () * cobra.Command {
@@ -201,6 +203,10 @@ func genAliasCmd() *cobra.Command {
201
203
"Usage is typically `eval \" $(devbox gen alias)\" `." ,
202
204
Args : cobra .ExactArgs (0 ),
203
205
RunE : func (cmd * cobra.Command , args []string ) error {
206
+ if flags .prefix != "" && flags .noPrefix {
207
+ return usererr .New (
208
+ "Cannot use both --prefix and --no-prefix flags together" )
209
+ }
204
210
box , err := devbox .Open (& devopt.Opts {
205
211
Dir : flags .config .path ,
206
212
Stderr : cmd .ErrOrStderr (),
@@ -210,17 +216,17 @@ func genAliasCmd() *cobra.Command {
210
216
}
211
217
re := regexp .MustCompile ("[^a-zA-Z0-9_-]+" )
212
218
prefix := cmp .Or (flags .prefix , box .Config ().Root .Name )
213
- if prefix == "" {
219
+ if prefix == "" && ! flags . noPrefix {
214
220
return usererr .New (
215
- "To generate aliases, you must specify a prefix or set a name " +
216
- "in devbox.json" )
221
+ "To generate aliases, you must specify a prefix, set a name " +
222
+ "in devbox.json, or use the --no-prefix flag. " )
217
223
}
218
224
prefix = re .ReplaceAllString (prefix , "-" )
219
225
for _ , script := range box .ListScripts () {
220
226
fmt .Fprintf (
221
227
cmd .OutOrStdout (),
222
- "alias %s- %s='devbox -c \" %s\" run %s'\n " ,
223
- prefix ,
228
+ "alias %s%s='devbox -c \" %s\" run %s'\n " ,
229
+ lo . Ternary ( flags . noPrefix , "" , prefix + "-" ) ,
224
230
script ,
225
231
box .ProjectDir (),
226
232
script ,
@@ -232,6 +238,9 @@ func genAliasCmd() *cobra.Command {
232
238
flags .config .register (command )
233
239
command .Flags ().StringVarP (
234
240
& flags .prefix , "prefix" , "p" , "" , "Prefix for the generated aliases" )
241
+ command .Flags ().BoolVar (
242
+ & flags .noPrefix , "no-prefix" , false ,
243
+ "Do not use a prefix for the generated aliases" )
235
244
236
245
return command
237
246
}
0 commit comments