From 4432855a2dbd4d138cef99ef2f0f0fd7d46c3dc3 Mon Sep 17 00:00:00 2001 From: admin Date: Sat, 1 Aug 2026 18:27:20 +0000 Subject: [PATCH] fix: trap DEBUG to ensure env.list always exists during setup.sh --- internal/native/native.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/internal/native/native.go b/internal/native/native.go index 41b64ca..2193f04 100644 --- a/internal/native/native.go +++ b/internal/native/native.go @@ -56,9 +56,17 @@ func InstallNode(node state.Node, apiToken, apiHost, labels string) error { return fmt.Errorf("extract: %w\n%s", err, string(out)) } - // 5. Run setup.sh natively + // Run setup.sh with env.list protection fmt.Printf("[%s] Running setup...\n", node.Name) - cmd = exec.Command("bash", filepath.Join(DeployTo, "setup.sh"), + setupPath := filepath.Join(DeployTo, "setup.sh") + // Wrapper: ensure env.list exists before any sed commands touch it + wrapper := fmt.Sprintf(`#!/bin/bash +trap 'touch %s/env.list 2>/dev/null' DEBUG +bash %s "$@" +`, DeployTo, setupPath) + wrapperPath := filepath.Join(DeployTo, "run-setup.sh") + os.WriteFile(wrapperPath, []byte(wrapper), 0755) + cmd = exec.Command("bash", wrapperPath, "--batch", "--token", apiToken, "--cloud", cloudFromHost(apiHost), "--custom-ngx-build", )