Cleanup: move Blender command param parsing to its own function

This commit is contained in:
Sybren A. Stüvel 2022-02-22 12:38:25 +01:00
parent 20965691d0
commit db4505e5fd

View File

@ -39,26 +39,9 @@ type BlenderParameters struct {
// cmdBlender executes the "blender-render" command. // cmdBlender executes the "blender-render" command.
func (ce *CommandExecutor) cmdBlenderRender(ctx context.Context, logger zerolog.Logger, taskID string, cmd api.Command) error { func (ce *CommandExecutor) cmdBlenderRender(ctx context.Context, logger zerolog.Logger, taskID string, cmd api.Command) error {
var ( parameters, err := cmdBlenderRenderParams(logger, cmd)
parameters BlenderParameters if err != nil {
ok bool return err
)
if parameters.exe, ok = cmdParameter[string](cmd, "exe"); !ok || parameters.exe == "" {
logger.Warn().Interface("command", cmd).Msg("missing 'exe' parameter")
return fmt.Errorf("missing 'exe' parameter: %+v", cmd.Parameters)
}
if parameters.argsBefore, ok = cmdParameterAsStrings(cmd, "argsBefore"); !ok {
logger.Warn().Interface("command", cmd).Msg("invalid 'argsBefore' parameter")
return fmt.Errorf("invalid 'argsBefore' parameter: %+v", cmd.Parameters)
}
if parameters.blendfile, ok = cmdParameter[string](cmd, "blendfile"); !ok || parameters.blendfile == "" {
logger.Warn().Interface("command", cmd).Msg("missing 'blendfile' parameter")
return fmt.Errorf("missing 'blendfile' parameter: %+v", cmd.Parameters)
}
if parameters.args, ok = cmdParameterAsStrings(cmd, "args"); !ok {
logger.Warn().Interface("command", cmd).Msg("invalid 'args' parameter")
return fmt.Errorf("invalid 'args' parameter: %+v", cmd.Parameters)
} }
cliArgs := make([]string, 0) cliArgs := make([]string, 0)
@ -82,3 +65,29 @@ func (ce *CommandExecutor) cmdBlenderRender(ctx context.Context, logger zerolog.
} }
return nil return nil
} }
func cmdBlenderRenderParams(logger zerolog.Logger, cmd api.Command) (BlenderParameters, error) {
var (
parameters BlenderParameters
ok bool
)
if parameters.exe, ok = cmdParameter[string](cmd, "exe"); !ok || parameters.exe == "" {
logger.Warn().Interface("command", cmd).Msg("missing 'exe' parameter")
return parameters, fmt.Errorf("missing 'exe' parameter: %+v", cmd.Parameters)
}
if parameters.argsBefore, ok = cmdParameterAsStrings(cmd, "argsBefore"); !ok {
logger.Warn().Interface("command", cmd).Msg("invalid 'argsBefore' parameter")
return parameters, fmt.Errorf("invalid 'argsBefore' parameter: %+v", cmd.Parameters)
}
if parameters.blendfile, ok = cmdParameter[string](cmd, "blendfile"); !ok || parameters.blendfile == "" {
logger.Warn().Interface("command", cmd).Msg("missing 'blendfile' parameter")
return parameters, fmt.Errorf("missing 'blendfile' parameter: %+v", cmd.Parameters)
}
if parameters.args, ok = cmdParameterAsStrings(cmd, "args"); !ok {
logger.Warn().Interface("command", cmd).Msg("invalid 'args' parameter")
return parameters, fmt.Errorf("invalid 'args' parameter: %+v", cmd.Parameters)
}
return parameters, nil
}