diff --git a/internal/bootstrap/bootstrap.go b/internal/bootstrap/bootstrap.go index ba7da8f..2051a92 100644 --- a/internal/bootstrap/bootstrap.go +++ b/internal/bootstrap/bootstrap.go @@ -1621,6 +1621,7 @@ ufw status | grep -qx 'Status: active' `, fallbackSSHPort) } return fmt.Sprintf(`set -eu + install -d -m 0755 /usr/local/bin %sinstall -m 0755 %s /usr/local/bin/nodeflow-node-agent.new mv -f /usr/local/bin/nodeflow-node-agent.new /usr/local/bin/nodeflow-node-agent %s diff --git a/internal/bootstrap/bootstrap_test.go b/internal/bootstrap/bootstrap_test.go index ee63eb9..3eec7f7 100644 --- a/internal/bootstrap/bootstrap_test.go +++ b/internal/bootstrap/bootstrap_test.go @@ -255,6 +255,8 @@ func TestInstallScriptAptOnlyOnDebianFamily(t *testing.T) { assert.Contains(t, ubuntu, "IOWeight=20") assert.Contains(t, ubuntu, "TasksMax=64") assert.Contains(t, ubuntu, "mv -f /usr/local/bin/nodeflow-node-agent.new") + assert.Less(t, strings.Index(ubuntu, "install -d -m 0755 /usr/local/bin\n"), strings.Index(ubuntu, "/usr/local/bin/nodeflow-node-agent.new")) + assert.GreaterOrEqual(t, strings.Index(ubuntu, "install -d -m 0755 /usr/local/bin\n"), 0) assert.Contains(t, ubuntu, "systemctl restart nodeflow-node-agent.service") assert.Contains(t, ubuntu, "systemctl is-active --quiet nodeflow-node-agent.service") assert.NotContains(t, ubuntu, "ufw --force enable") diff --git a/scripts/install-node.sh b/scripts/install-node.sh index 2c323c8..625dcd0 100755 --- a/scripts/install-node.sh +++ b/scripts/install-node.sh @@ -206,6 +206,7 @@ main() { ;; esac + install -d -m 0755 /usr/local/bin if [[ -n ${NODE_AGENT_BINARY:-} ]]; then install -m 0755 "${NODE_AGENT_BINARY}" /usr/local/bin/nodeflow-node-agent.new elif [[ ${NODEFLOW_AGENT_SOURCE:-release} == build ]]; then