mirror of
https://github.com/go-task/task.git
synced 2026-06-28 15:14:18 +00:00
Possibility to call another task
This commit is contained in:
22
task.go
22
task.go
@@ -74,13 +74,17 @@ func Run() {
|
||||
|
||||
// RunTask runs a task by its name
|
||||
func RunTask(name string) error {
|
||||
mu.Lock()
|
||||
if _, found := runnedTasks[name]; found {
|
||||
if strings.HasPrefix(name, "^") {
|
||||
name = strings.TrimPrefix(name, "^")
|
||||
} else {
|
||||
mu.Lock()
|
||||
if _, found := runnedTasks[name]; found {
|
||||
mu.Unlock()
|
||||
return &cyclicDepError{name}
|
||||
}
|
||||
runnedTasks[name] = struct{}{}
|
||||
mu.Unlock()
|
||||
return &cyclicDepError{name}
|
||||
}
|
||||
runnedTasks[name] = struct{}{}
|
||||
mu.Unlock()
|
||||
|
||||
t, ok := Tasks[name]
|
||||
if !ok {
|
||||
@@ -174,6 +178,14 @@ func (t *Task) runCommand(i int) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if strings.HasPrefix(c, "^") {
|
||||
if err = RunTask(c); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
dir, err := ReplaceVariables(t.Dir, vars)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user