fix(cmd/joj3): deep copy default values
This commit is contained in:
parent
70804cdce2
commit
5efc3007e4
|
@ -41,7 +41,11 @@ func generateStages(conf *conf.Conf, groups []string) ([]stage.Stage, error) {
|
||||||
defaultCmd := s.Executor.With.Default
|
defaultCmd := s.Executor.With.Default
|
||||||
for _, optionalCmd := range s.Executor.With.Cases {
|
for _, optionalCmd := range s.Executor.With.Cases {
|
||||||
cmd := s.Executor.With.Default
|
cmd := s.Executor.With.Default
|
||||||
err := copier.Copy(&cmd, &optionalCmd)
|
err := copier.CopyWithOption(
|
||||||
|
&cmd,
|
||||||
|
&optionalCmd,
|
||||||
|
copier.Option{DeepCopy: true},
|
||||||
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error("generate stages", "error", err)
|
slog.Error("generate stages", "error", err)
|
||||||
return stages, err
|
return stages, err
|
||||||
|
@ -49,13 +53,43 @@ func generateStages(conf *conf.Conf, groups []string) ([]stage.Stage, error) {
|
||||||
// since these 3 values are pointers, copier will always copy
|
// since these 3 values are pointers, copier will always copy
|
||||||
// them, so we need to check them manually
|
// them, so we need to check them manually
|
||||||
if defaultCmd.Stdin != nil && optionalCmd.Stdin == nil {
|
if defaultCmd.Stdin != nil && optionalCmd.Stdin == nil {
|
||||||
cmd.Stdin = defaultCmd.Stdin
|
var stdin stage.CmdFile
|
||||||
|
err := copier.CopyWithOption(
|
||||||
|
&stdin,
|
||||||
|
defaultCmd.Stdin,
|
||||||
|
copier.Option{DeepCopy: true},
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
slog.Error("generate stages", "error", err)
|
||||||
|
return stages, err
|
||||||
|
}
|
||||||
|
cmd.Stdin = &stdin
|
||||||
}
|
}
|
||||||
if defaultCmd.Stdout != nil && optionalCmd.Stdout == nil {
|
if defaultCmd.Stdout != nil && optionalCmd.Stdout == nil {
|
||||||
cmd.Stdout = defaultCmd.Stdout
|
var stdout stage.CmdFile
|
||||||
|
err := copier.CopyWithOption(
|
||||||
|
&stdout,
|
||||||
|
defaultCmd.Stdout,
|
||||||
|
copier.Option{DeepCopy: true},
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
slog.Error("generate stages", "error", err)
|
||||||
|
return stages, err
|
||||||
|
}
|
||||||
|
cmd.Stdout = &stdout
|
||||||
}
|
}
|
||||||
if defaultCmd.Stderr != nil && optionalCmd.Stderr == nil {
|
if defaultCmd.Stderr != nil && optionalCmd.Stderr == nil {
|
||||||
cmd.Stderr = defaultCmd.Stderr
|
var stderr stage.CmdFile
|
||||||
|
err := copier.CopyWithOption(
|
||||||
|
&stderr,
|
||||||
|
defaultCmd.Stderr,
|
||||||
|
copier.Option{DeepCopy: true},
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
slog.Error("generate stages", "error", err)
|
||||||
|
return stages, err
|
||||||
|
}
|
||||||
|
cmd.Stderr = &stderr
|
||||||
}
|
}
|
||||||
cmds = append(cmds, cmd)
|
cmds = append(cmds, cmd)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user