Skip to content

Commit c01d87d

Browse files
authored
Merge pull request #622 from AutomationSolutionz/zeuz-node-versioning
feat: Add --clean flag for node directory cleanup and dynamic folder name from version
2 parents 60a2283 + 1ef9cf8 commit c01d87d

2 files changed

Lines changed: 48 additions & 8 deletions

File tree

Apps/node_runner/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
BUILD_DIR=build
55

66
# Version info
7-
VERSION?=dev
7+
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)
88
APPNAME=ZeuZ_Node
99
LDFLAGS=-X main.version=$(VERSION)
1010

Apps/node_runner/main.go

Lines changed: 47 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,12 @@ import (
1515
"github.com/automationsolutionz/Zeuz_Python_Node/Apps/node_runner/uv_installer"
1616
)
1717

18-
const (
19-
zeuzDir = "ZeuZ_Node"
20-
)
21-
2218
var (
23-
version = "dev"
24-
branch = flag.String("branch", "", "Branch to download (defaults to tagged version)")
19+
version = "dev"
20+
branch = flag.String("branch", "", "Branch to download (defaults to tagged version)")
21+
cleanFlag = flag.Bool("clean", false, "Remove ZeuZ Node directory and $HOME/.zeuz and exit")
2522
)
2623

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

134+
func getZeuZNodeDir() string {
135+
selectedVersion := ""
136+
if *branch != "" {
137+
selectedVersion = *branch
138+
}
139+
if version != "dev" && !strings.HasPrefix(version, "dev-") {
140+
selectedVersion = version
141+
}
142+
143+
return fmt.Sprintf("ZeuZ_Node-%s", selectedVersion)
144+
}
145+
138146
// setupZeuzNode downloads and extracts the ZeuZ Node repository if not already present
139147
func setupZeuzNode() error {
148+
zeuzDir := getZeuZNodeDir()
140149
// Check if ZeuZ Node directory already exists and contains files
141150
if info, err := os.Stat(zeuzDir); err == nil && info.IsDir() {
142151
// Check if directory is not empty
@@ -265,6 +274,37 @@ func main() {
265274

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

277+
zeuzDir := getZeuZNodeDir()
278+
279+
if *cleanFlag {
280+
var removedAny bool
281+
if err := os.RemoveAll(zeuzDir); err == nil {
282+
fmt.Printf("Removed %s\n", zeuzDir)
283+
removedAny = true
284+
} else if !os.IsNotExist(err) {
285+
fmt.Printf("Failed to remove %s: %v\n", zeuzDir, err)
286+
}
287+
288+
home, err := os.UserHomeDir()
289+
if err == nil {
290+
zeuzHome := filepath.Join(home, ".zeuz")
291+
if err := os.RemoveAll(zeuzHome); err == nil {
292+
fmt.Printf("Removed %s\n", zeuzHome)
293+
removedAny = true
294+
} else if !os.IsNotExist(err) {
295+
fmt.Printf("Failed to remove %s: %v\n", zeuzHome, err)
296+
}
297+
} else {
298+
fmt.Printf("Could not determine user home dir: %v\n", err)
299+
}
300+
301+
if !removedAny {
302+
fmt.Println("Nothing removed. No matching directories found.")
303+
} else {
304+
fmt.Println("Cleanup complete — proceeding to download & install a fresh copy.")
305+
}
306+
}
307+
268308
// Setup ZeuZ Node directory and change into it
269309
if err := setupZeuzNode(); err != nil {
270310
fmt.Printf("Error setting up ZeuZ Node: %v\n", err)

0 commit comments

Comments
 (0)