requires.go 646 B

123456789101112131415161718192021222324252627282930313233
  1. package task
  2. import (
  3. "github.com/go-task/task/v3/errors"
  4. "github.com/go-task/task/v3/taskfile/ast"
  5. )
  6. func (e *Executor) areTaskRequiredVarsSet(t *ast.Task, call *ast.Call) error {
  7. if t.Requires == nil || len(t.Requires.Vars) == 0 {
  8. return nil
  9. }
  10. vars, err := e.Compiler.GetVariables(t, call)
  11. if err != nil {
  12. return err
  13. }
  14. var missingVars []string
  15. for _, requiredVar := range t.Requires.Vars {
  16. if !vars.Exists(requiredVar) {
  17. missingVars = append(missingVars, requiredVar)
  18. }
  19. }
  20. if len(missingVars) > 0 {
  21. return &errors.TaskMissingRequiredVars{
  22. TaskName: t.Name(),
  23. MissingVars: missingVars,
  24. }
  25. }
  26. return nil
  27. }