Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Apps/node_runner/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
BUILD_DIR=build

# Version info
VERSION?=dev
VERSION ?= v$(shell if [ -f ../../Framework/Version.txt ]; then grep -Eo "version[[:space:]]*=[[:space:]]*[0-9]+\.[0-9]+\.[0-9]+" ../../Framework/Version.txt | head -n1 | sed 's/.*=//; s/ //g'; else echo dev; fi)
APPNAME=ZeuZ_Node
LDFLAGS=-X main.version=$(VERSION)

Expand Down
54 changes: 47 additions & 7 deletions Apps/node_runner/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,12 @@ import (
"github.com/automationsolutionz/Zeuz_Python_Node/Apps/node_runner/uv_installer"
)

const (
zeuzDir = "ZeuZ_Node"
)

var (
version = "dev"
branch = flag.String("branch", "", "Branch to download (defaults to tagged version)")
version = "dev"
branch = flag.String("branch", "", "Branch to download (defaults to tagged version)")
cleanFlag = flag.Bool("clean", false, "Remove ZeuZ Node directory and $HOME/.zeuz and exit")
)

// downloadFile downloads a file from URL to a local path
func downloadFile(url, destPath string) error {
resp, err := http.Get(url)
if err != nil {
Expand Down Expand Up @@ -135,8 +131,21 @@ func getZeuZNodeURL() string {
return "https://github.com/AutomationSolutionz/Zeuz_Python_Node/archive/refs/heads/dev.zip"
}

func getZeuZNodeDir() string {
selectedVersion := ""
if *branch != "" {
selectedVersion = *branch
}
if version != "dev" && !strings.HasPrefix(version, "dev-") {
selectedVersion = version
}

return fmt.Sprintf("ZeuZ_Node-%s", selectedVersion)
}

// setupZeuzNode downloads and extracts the ZeuZ Node repository if not already present
func setupZeuzNode() error {
zeuzDir := getZeuZNodeDir()
// Check if ZeuZ Node directory already exists and contains files
if info, err := os.Stat(zeuzDir); err == nil && info.IsDir() {
// Check if directory is not empty
Expand Down Expand Up @@ -265,6 +274,37 @@ func main() {

fmt.Printf("✅ ZeuZ Node %s\n", version)

zeuzDir := getZeuZNodeDir()

if *cleanFlag {
var removedAny bool
if err := os.RemoveAll(zeuzDir); err == nil {
fmt.Printf("Removed %s\n", zeuzDir)
removedAny = true
} else if !os.IsNotExist(err) {
fmt.Printf("Failed to remove %s: %v\n", zeuzDir, err)
}

home, err := os.UserHomeDir()
if err == nil {
zeuzHome := filepath.Join(home, ".zeuz")
if err := os.RemoveAll(zeuzHome); err == nil {
fmt.Printf("Removed %s\n", zeuzHome)
removedAny = true
} else if !os.IsNotExist(err) {
fmt.Printf("Failed to remove %s: %v\n", zeuzHome, err)
}
} else {
fmt.Printf("Could not determine user home dir: %v\n", err)
}

if !removedAny {
fmt.Println("Nothing removed. No matching directories found.")
} else {
fmt.Println("Cleanup complete — proceeding to download & install a fresh copy.")
}
}

// Setup ZeuZ Node directory and change into it
if err := setupZeuzNode(); err != nil {
fmt.Printf("Error setting up ZeuZ Node: %v\n", err)
Expand Down
Loading