brewkit icon indicating copy to clipboard operation
brewkit copied to clipboard

build script doesn't revalidate base `working-directory`.

Open jhheider opened this issue 2 years ago • 2 comments

The following fails (go.dev-type):

build:
  working-directory: src
  script:
    - make.bash
    - mkdir -p "{{prefix}}"
    - run: mv src "{{prefix}}"
      working-directory: $SRCROOT

with

+ unset OLDWD
+ OLDWD=/var/folders/8b/n_gmhmk57ks85swq3mrdbrwc0000gp/T/1892f004/src
+ mkdir -p /var/folders/8b/n_gmhmk57ks85swq3mrdbrwc0000gp/T/1892f004
+ cd /var/folders/8b/n_gmhmk57ks85swq3mrdbrwc0000gp/T/1892f004
+ mv src /opt/go.dev/v1.21.0
+ cd /var/folders/8b/n_gmhmk57ks85swq3mrdbrwc0000gp/T/1892f004/src
/var/folders/8b/n_gmhmk57ks85swq3mrdbrwc0000gp/T/1892f004/xyz.tea.build.sh: line 53: cd: /var/folders/8b/n_gmhmk57ks85swq3mrdbrwc0000gp/T/1892f004/src: No such file or directory

Makes sense, but an odd gotcha. Could be prevented with a test -d $foo || mkdir -p $foo, or similar.

jhheider avatar Aug 14 '23 22:08 jhheider

hah, interesting. Not really sure what we should do. User literally moved the dir.

In this case we don’t care about the working directory anymore since it is the last step. We should probs at least just support that by not changing back unless there's another step or something like that.

mxcl avatar Aug 27 '23 14:08 mxcl

I think the stupidest easy fix is to mkdir -p before any cd. Slightly less stupid involves test -d. Thirdly is something else, probably.

jhheider avatar Aug 27 '23 14:08 jhheider