|
@@ -15,21 +15,17 @@ package main
|
|
|
// - Very good golang Docker libraries
|
|
// - Very good golang Docker libraries
|
|
|
|
|
|
|
|
import (
|
|
import (
|
|
|
- "encoding/json"
|
|
|
|
|
"fmt"
|
|
"fmt"
|
|
|
"goseg/config"
|
|
"goseg/config"
|
|
|
"goseg/docker"
|
|
"goseg/docker"
|
|
|
"goseg/rectify"
|
|
"goseg/rectify"
|
|
|
"goseg/startram"
|
|
"goseg/startram"
|
|
|
- "goseg/structs"
|
|
|
|
|
"goseg/ws"
|
|
"goseg/ws"
|
|
|
- "io/ioutil"
|
|
|
|
|
"log/slog"
|
|
"log/slog"
|
|
|
"net/http"
|
|
"net/http"
|
|
|
"os"
|
|
"os"
|
|
|
- "path/filepath"
|
|
|
|
|
"strings"
|
|
"strings"
|
|
|
- // "time"
|
|
|
|
|
|
|
+ "time"
|
|
|
|
|
|
|
|
"github.com/gorilla/mux"
|
|
"github.com/gorilla/mux"
|
|
|
)
|
|
)
|
|
@@ -68,29 +64,7 @@ func main() {
|
|
|
}()
|
|
}()
|
|
|
// otherwise use cached if possible, or save hardcoded defaults and use that
|
|
// otherwise use cached if possible, or save hardcoded defaults and use that
|
|
|
} else {
|
|
} else {
|
|
|
- confPath := filepath.Join(config.BasePath, "settings", "version_info.json")
|
|
|
|
|
- _, err := os.Open(confPath)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- // create a default if it doesn't exist
|
|
|
|
|
- err = config.CreateDefaultVersion()
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- // panic if we can't create it
|
|
|
|
|
- errmsg := fmt.Sprintf("Unable to write version info! %v", err)
|
|
|
|
|
- logger.Error(errmsg)
|
|
|
|
|
- panic(errmsg)
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- file, err := ioutil.ReadFile(confPath)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- errmsg := fmt.Sprintf("Unable to load version info: %v", err)
|
|
|
|
|
- panic(errmsg)
|
|
|
|
|
- }
|
|
|
|
|
- var versionStruct structs.Version
|
|
|
|
|
- if err := json.Unmarshal(file, &versionStruct); err != nil {
|
|
|
|
|
- errmsg := fmt.Sprintf("Error decoding version JSON: %v", err)
|
|
|
|
|
- panic(errmsg)
|
|
|
|
|
- }
|
|
|
|
|
- // Store in var
|
|
|
|
|
|
|
+ versionStruct := config.LocalVersion()
|
|
|
releaseChannel := conf.UpdateBranch
|
|
releaseChannel := conf.UpdateBranch
|
|
|
targetChan := versionStruct.Groundseg[releaseChannel]
|
|
targetChan := versionStruct.Groundseg[releaseChannel]
|
|
|
config.VersionInfo = targetChan
|
|
config.VersionInfo = targetChan
|
|
@@ -106,12 +80,21 @@ func main() {
|
|
|
pierList := strings.Join(conf.Piers, ", ")
|
|
pierList := strings.Join(conf.Piers, ", ")
|
|
|
logger.Info(fmt.Sprintf("Loaded piers: %s", pierList))
|
|
logger.Info(fmt.Sprintf("Loaded piers: %s", pierList))
|
|
|
}
|
|
}
|
|
|
- // block until returns
|
|
|
|
|
- if remoteVersion == true {
|
|
|
|
|
- <-versionUpdateChannel
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // get the startram config from server
|
|
|
if conf.WgRegistered == true {
|
|
if conf.WgRegistered == true {
|
|
|
- startram.Retrieve()
|
|
|
|
|
|
|
+ _, err := startram.Retrieve()
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ logger.Warn(fmt.Sprintf("Could not retrieve StarTram/Anchor config: %v",err))
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // block until version info returns
|
|
|
|
|
+ if remoteVersion == true {
|
|
|
|
|
+ select {
|
|
|
|
|
+ case <-versionUpdateChannel:
|
|
|
|
|
+ logger.Info("Version info retrieved")
|
|
|
|
|
+ case <-time.After(10 * time.Second):
|
|
|
|
|
+ logger.Warn("Could not retrieve version info after 10 seconds!")
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
// Load Netdata
|
|
// Load Netdata
|
|
|
loadService(docker.LoadNetdata, "Unable to load Netdata!")
|
|
loadService(docker.LoadNetdata, "Unable to load Netdata!")
|