brewkit
brewkit copied to clipboard
build script doesn't revalidate base `working-directory`.
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.
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.
I think the stupidest easy fix is to mkdir -p before any cd. Slightly less stupid involves test -d. Thirdly is something else, probably.