diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..4b1dede --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,18 @@ +# Changelog + +## [1.3.1] - 08-12-2024 + +* Fixes to Browser Dev feature: + * Now edgeboxctl also fetches or generates the browser dev environment url and saves it into an option both when starting, and every time the browser dev status is fetched. + +## [1.3.0] - 05-12-2024 + +* Added Edgebox Browser Development Environment Feature Support + * Added tasks for handling browser development environment into tasks.go + * Added executable tasks to ExecuteTask and scheduled ones to ExecuteSchedules +* Other bug fixes and improvements. + +### Missing Past Releases + +Release notes for past versions are not available in this file. Please refer to the [GitHub releases](https://hithub.com/edgebox-iot/edgeboxctl/releases) for more information. Feel free to contribute to this file by adding missing release notes. + diff --git a/internal/tasks/tasks.go b/internal/tasks/tasks.go index 328d181..f8b6b69 100644 --- a/internal/tasks/tasks.go +++ b/internal/tasks/tasks.go @@ -18,6 +18,8 @@ import ( "github.com/edgebox-iot/edgeboxctl/internal/system" "github.com/edgebox-iot/edgeboxctl/internal/utils" + "github.com/joho/godotenv" + _ "github.com/go-sql-driver/mysql" // Mysql Driver _ "github.com/mattn/go-sqlite3" // SQlite Driver ) @@ -531,6 +533,8 @@ func ExecuteSchedules(tick int) { log.Println("Fetching Browser Dev Environment Information") taskGetBrowserDevPassword() taskGetBrowserDevStatus() + + taskCheckSystemUpdates() ip := taskGetSystemIP() log.Println("System IP is: " + ip) @@ -560,9 +564,7 @@ func ExecuteSchedules(tick int) { taskStartWs() log.Println(taskGetEdgeApps()) taskUpdateSystemLoggerServices() - taskRecoverFromUpdate() - taskCheckSystemUpdates() - + taskRecoverFromUpdate() } if tick%5 == 0 { @@ -571,6 +573,10 @@ func ExecuteSchedules(tick int) { log.Println(taskGetStorageDevices()) } + if tick%15 == 0 { + taskGetBrowserDevStatus() + } + if tick%30 == 0 { // Executing every 30 ticks log.Println(taskGetEdgeApps()) @@ -1150,7 +1156,10 @@ func taskGetBrowserDevStatus() string { if browserDevStatus == "active" { fmt.Println("Browser Dev Environment is running") utils.WriteOption("BROWSERDEV_STATUS", "running") + taskGetBrowserDevUrl() + return "{\"status\": \"running\"}" + } else { fmt.Println("Browser Dev Environment is not running") utils.WriteOption("BROWSERDEV_STATUS", "not_running") @@ -1158,6 +1167,24 @@ func taskGetBrowserDevStatus() string { } } +func taskGetBrowserDevUrl() string { + url := "" + myEdgeAppServiceEnv, err := godotenv.Read(utils.GetPath(utils.EdgeAppsPath) + "dev/myedgeapp.env") + if err != nil { + log.Println("No myedge.app environment file found. Status is Network-Only") + url = "http://dev." + system.GetHostname() + ".local" + } else { + if myEdgeAppServiceEnv["INTERNET_URL"] != "" { + url = "https://" + myEdgeAppServiceEnv["INTERNET_URL"] + } + } + + fmt.Println("Browser Dev Url: " + url) + + utils.WriteOption("BROWSERDEV_URL", url) + return url +} + func taskActivateBrowserDev() string { fmt.Println("Executing taskActivateBrowserDev") wsPath := utils.GetPath(utils.WsPath) @@ -1170,6 +1197,10 @@ func taskActivateBrowserDev() string { system.StartWs() // Write control option for API utils.WriteOption("BROWSERDEV_STATUS", "running") + + // Write and refresh the dev environment password option + taskGetBrowserDevPassword() + return "{\"status\": \"ok\"}" } @@ -1189,15 +1220,14 @@ func taskDeactivateBrowserDev() string { func taskGetBrowserDevPassword() string { fmt.Println("Executing taskGetBrowserDevPassword") - password := utils.ReadOption("BROWSERDEV_PASSWORD") - if password == "" { - password, err := system.FetchBrowserDevPasswordFromFile() - if err == nil { - utils.WriteOption("BROWSERDEV_PASSWORD", password) - } else { - fmt.Println("Error fetching browser dev password from file: " + err.Error()) - } + + password, err := system.FetchBrowserDevPasswordFromFile() + if err == nil { + utils.WriteOption("BROWSERDEV_PASSWORD", password) + } else { + fmt.Println("Error fetching browser dev password from file: " + err.Error()) } + return password }