From f71ef8e60b0fa034ac459242152e93cc717ccee6 Mon Sep 17 00:00:00 2001 From: anonpenguin23 Date: Fri, 31 Oct 2025 20:09:34 +0200 Subject: [PATCH] refactor: streamline repository removal and directory setup in cloneAndBuild function - Updated the repository removal process to always use root, with a fallback to the 'debros' user if necessary. - Added error handling for ensuring the 'debros' home directory exists and setting its ownership. - Improved clarity in error messages for directory setup failures. --- Makefile | 2 +- pkg/cli/setup.go | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 90910d5..adfe353 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,7 @@ test-e2e: .PHONY: build clean test run-node run-node2 run-node3 run-example deps tidy fmt vet lint clear-ports -VERSION := 0.53.11 +VERSION := 0.53.12 COMMIT ?= $(shell git rev-parse --short HEAD 2>/dev/null || echo unknown) DATE ?= $(shell date -u +%Y-%m-%dT%H:%M:%SZ) LDFLAGS := -X 'main.version=$(VERSION)' -X 'main.commit=$(COMMIT)' -X 'main.date=$(DATE)' diff --git a/pkg/cli/setup.go b/pkg/cli/setup.go index 60f7fd8..1d4d5f0 100644 --- a/pkg/cli/setup.go +++ b/pkg/cli/setup.go @@ -1071,13 +1071,13 @@ func cloneAndBuild() { // Remove existing repository if it exists (always start fresh) if _, err := os.Stat("/home/debros/src"); err == nil { fmt.Printf(" Removing existing repository...\n") - // Remove as debros user to avoid permission issues - removeCmd := exec.Command("sudo", "-u", "debros", "rm", "-rf", "/home/debros/src") - if output, err := removeCmd.CombinedOutput(); err != nil { - fmt.Fprintf(os.Stderr, "⚠️ Failed to remove existing repo as debros user: %v\n%s\n", err, output) - // Try as root as fallback - if err := os.RemoveAll("/home/debros/src"); err != nil { - fmt.Fprintf(os.Stderr, "⚠️ Failed to remove existing repo as root: %v\n", err) + // Remove as root since we're running as root + if err := os.RemoveAll("/home/debros/src"); err != nil { + fmt.Fprintf(os.Stderr, "⚠️ Failed to remove existing repo as root: %v\n", err) + // Try as debros user as fallback (might work if files are owned by debros) + removeCmd := exec.Command("sudo", "-u", "debros", "rm", "-rf", "/home/debros/src") + if output, err := removeCmd.CombinedOutput(); err != nil { + fmt.Fprintf(os.Stderr, "⚠️ Failed to remove existing repo as debros user: %v\n%s\n", err, output) } } // Wait a moment to ensure filesystem syncs @@ -1087,8 +1087,11 @@ func cloneAndBuild() { // Ensure parent directory exists and has correct permissions if err := os.MkdirAll("/home/debros", 0755); err != nil { fmt.Fprintf(os.Stderr, "⚠️ Failed to ensure debros home directory exists: %v\n", err) + os.Exit(1) + } + if err := exec.Command("chown", "debros:debros", "/home/debros").Run(); err != nil { + fmt.Fprintf(os.Stderr, "⚠️ Failed to chown debros home directory: %v\n", err) } - exec.Command("chown", "debros:debros", "/home/debros").Run() // Clone fresh repository fmt.Printf(" Cloning repository...\n")