sake icon indicating copy to clipboard operation
sake copied to clipboard

Workdir for remote is being used by `local: true` task

Open rprtr258 opened this issue 3 years ago • 1 comments

  • [x] I have the latest version of sake
  • [x] I have searched through the existing issues

Info

  • OS

    • [x] Linux
    • [ ] Mac OS X
    • [ ] Windows
    • [ ] other
  • Shell

    • [x] Bash
    • [ ] Zsh
    • [ ] Fish
    • [ ] Powershell
    • [ ] other

Installed with go install github.com/alajmo/sake@latest

  • Version:
Version: dev
Commit: none
Date: n/a

Problem / Steps to reproduce

sake.yml:

servers:
  localhost:
    host: 0.0.0.0
    local: true
  remote:
    host: 0.0.0.0
    local: true
    work_dir: does_not_exist

tasks:
  ping:
    desc: Pong
    target: {servers: [remote]}
    tasks:
      - cmd: echo "pong"
        local: true

What's wrong:

$ sake run ping

TASK*********

$ sake run --any-errors-fatal ping

TASK*********

error: chdir /tmp/t/does_not_exist: no such file or directory
  1. Task silently fails in case of sake run ping, though it did nothing. I expected sake to print any errors and logs happened during execution of task.
  2. work_dir is used for remote server and task is required to run locally (local: true). But sake tries to go into work_dir locally before executing task, which is wrong behavior.

rprtr258 avatar Nov 27 '22 14:11 rprtr258

I've reworked how working directories work (https://github.com/alajmo/sake/releases), the full specification can be found here https://sakecli.com/work-dir. The above now prints the error.

alajmo avatar Dec 04 '22 20:12 alajmo