Skip to content

Commit 63e0dbc

Browse files
committed
save and restore environment when running recipe functions
1 parent 6c27ac9 commit 63e0dbc

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

distribute.sh

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -666,13 +666,23 @@ function run_get_packages() {
666666
done
667667
}
668668

669+
function envfn() {
670+
envsave=$(mktemp)
671+
envrestore=$(mktemp)
672+
set > $envsave
673+
$1
674+
set > $envrestore
675+
eval $(grep -v -F -f$envrestore $envsave)
676+
rm -f $envsave $envrestore
677+
}
678+
669679
function run_prebuild() {
670680
info "Run prebuild"
671681
cd $BUILD_PATH
672682
for module in $MODULES; do
673683
fn=$(echo prebuild_$module)
674684
debug "Call $fn"
675-
$fn
685+
envfn $fn
676686
done
677687
}
678688

@@ -707,7 +717,7 @@ function run_build() {
707717
if [ "X$DO_BUILD" == "X1" ] || [ ! -f "$MARKER_FN" ]; then
708718
debug "Call $fn"
709719
rm -f "$MARKER_FN"
710-
$fn
720+
envfn $fn
711721
touch "$MARKER_FN"
712722
else
713723
debug "Skipped $fn"
@@ -721,7 +731,7 @@ function run_postbuild() {
721731
for module in $MODULES; do
722732
fn=$(echo postbuild_$module)
723733
debug "Call $fn"
724-
$fn
734+
envfn $fn
725735
done
726736
}
727737

0 commit comments

Comments
 (0)