diff options
| author | Paul Buetow <paul@buetow.org> | 2026-04-10 22:47:34 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-04-10 22:47:34 +0300 |
| commit | ea9e7c0225f6af8179890516b5ce9d511dadb234 (patch) | |
| tree | e5d64837c8823d315af40162cf5f10491a06b755 /internal/askcli/taskexec.go | |
| parent | bd749f8e9a0eeaa5578a368996f7b93955580a39 (diff) | |
task 30: add proj prefix override for do
Diffstat (limited to 'internal/askcli/taskexec.go')
| -rw-r--r-- | internal/askcli/taskexec.go | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/internal/askcli/taskexec.go b/internal/askcli/taskexec.go index e3915d9..d479c34 100644 --- a/internal/askcli/taskexec.go +++ b/internal/askcli/taskexec.go @@ -35,9 +35,17 @@ func NewExecutor(commandName string) Executor { } func (e Executor) taskArgs(ctx context.Context, repoRoot string, args []string) ([]string, error) { - projectName, err := projectNameFromRoot(repoRoot) - if err != nil { - return nil, err + projectName, ok := taskProjectFromContext(ctx) + if !ok { + var err error + projectName, err = projectNameFromRoot(repoRoot) + if err != nil { + return nil, err + } + } + projectName = strings.TrimSpace(projectName) + if projectName == "" { + return nil, fmt.Errorf("project override proj:<name> requires a project name") } // rc.verbose=nothing suppresses Taskwarrior's configuration override // banner, while rc.confirmation=off keeps non-interactive commands from @@ -69,9 +77,12 @@ func (e Executor) Run(ctx context.Context, args []string, stdin io.Reader, stdou if err != nil { return 1, fmt.Errorf("%s: task binary lookup failed: %w", executor.label(), err) } - repoRoot, err := executor.detectRepoRoot(ctx) - if err != nil { - return 1, fmt.Errorf("%s: must be run inside a git repository: %w", executor.label(), err) + repoRoot := "" + if _, ok := taskProjectFromContext(ctx); !ok { + repoRoot, err = executor.detectRepoRoot(ctx) + if err != nil { + return 1, fmt.Errorf("%s: must be run inside a git repository: %w", executor.label(), err) + } } taskArgs, err := executor.taskArgs(ctx, repoRoot, args) if err != nil { |
