@@ -86,21 +86,7 @@ var playbackFile = flag.String("playback", "", "")
8686var currentVersion string
8787
8888func main () {
89-
90- versionFile := "VERSION.txt"
91- versionData , err := os .ReadFile (versionFile )
92- if err != nil {
93- fmt .Fprintf (os .Stderr , "Error reading version file (%s): %v\n " , versionFile , err )
94-
95- }
96- currentVersion = strings .TrimSpace (string (versionData ))
97-
98- versionFlag := flag .Bool ("version" , false , "Show the backend version" )
99- flag .Parse ()
100- if * versionFlag {
101- fmt .Println ("Hyperloop UPV Backend Version:" , currentVersion )
102- os .Exit (0 )
103- }
89+ update ()
10490
10591 traceFile := initTrace (* traceLevel , * traceFile )
10692 defer traceFile .Close ()
@@ -123,85 +109,6 @@ func main() {
123109
124110 config := getConfig ("./config.toml" )
125111
126- execPath , err := os .Executable ()
127- if err != nil {
128- fmt .Fprintf (os .Stderr , "Error getting executable path: %v\n " , err )
129- os .Exit (1 )
130- }
131- execDir := filepath .Dir (execPath )
132-
133- latestVersionStr , latestErr := getLatestVersionFromGitHub ()
134- backendPath := filepath .Join (execDir , ".." , ".." , "backend" )
135- _ , statErr := os .Stat (backendPath )
136- backendExists := statErr == nil
137-
138- if backendExists {
139- fmt .Println ("Backend folder detected." )
140- fmt .Print ("Do you want to update? (y/n): " )
141- var response string
142- fmt .Scanln (& response )
143- if strings .ToLower (response ) == "y" {
144- fmt .Println ("Launching updater to update the backend..." )
145- updaterPath := filepath .Join (execDir , ".." , ".." , "updater" )
146- cmd := exec .Command ("go" , "build" , "-o" , filepath .Join (updaterPath , "updater.exe" ), updaterPath )
147- cmd .Stdout = os .Stdout
148- cmd .Stderr = os .Stderr
149- if err := cmd .Run (); err != nil {
150- fmt .Fprintf (os .Stderr , "Error building updater: %v\n " , err )
151- os .Exit (1 )
152- }
153- updaterExe := filepath .Join (updaterPath , "updater.exe" )
154- cmd = exec .Command (updaterExe )
155- cmd .Dir = updaterPath
156- cmd .Stdout = os .Stdout
157- cmd .Stderr = os .Stderr
158- if err := cmd .Run (); err != nil {
159- fmt .Fprintf (os .Stderr , "Error launching updater: %v\n " , err )
160- os .Exit (1 )
161- }
162- os .Exit (0 )
163- } else {
164- fmt .Println ("Skipping update. Proceeding with the current version." )
165- }
166- } else {
167- // Solo updatear si se tienen ambas versiones y latest > current
168- current , currErr := version .NewVersion (currentVersion )
169- latest , lastErr := version .NewVersion (latestVersionStr )
170- if currErr != nil || lastErr != nil || latestErr != nil {
171- fmt .Println ("Warning: Could not determine versions. Skipping update. Proceeding with the current version:" , currentVersion )
172- } else if latest .GreaterThan (current ) {
173- fmt .Printf ("There is a new version available: %s (current version: %s)\n " , latest , current )
174- fmt .Print ("Do you want to update? (y/n): " )
175- var response string
176- fmt .Scanln (& response )
177- if strings .ToLower (response ) == "y" {
178- fmt .Println ("Launching updater to update the backend..." )
179- updaterExe := filepath .Join (execDir , "updater" )
180- if runtime .GOOS == "windows" {
181- updaterExe += ".exe"
182- }
183- if _ , err := os .Stat (updaterExe ); err == nil {
184- cmd := exec .Command (updaterExe )
185- cmd .Dir = execDir
186- cmd .Stdout = os .Stdout
187- cmd .Stderr = os .Stderr
188- if err := cmd .Run (); err != nil {
189- fmt .Fprintf (os .Stderr , "Error launching updater: %v\n " , err )
190- os .Exit (1 )
191- }
192- os .Exit (0 )
193- } else {
194- fmt .Fprintf (os .Stderr , "Updater not found: %s\n " , updaterExe )
195- fmt .Println ("Skipping update. Proceeding with the current version." )
196- }
197- } else {
198- fmt .Println ("Skipping update. Proceeding with the current version." )
199- }
200- } else {
201- fmt .Printf ("You are using the latest version: %s\n " , current )
202- }
203- }
204-
205112 // <--- ADJ --->
206113
207114 adj , err := adj_module .NewADJ (config .Adj .Branch , config .Adj .Test )
@@ -714,3 +621,103 @@ func getLatestVersionFromGitHub() (string, error) {
714621 version := strings .TrimPrefix (release .TagName , "v" )
715622 return version , nil
716623}
624+
625+ func update () {
626+ versionFile := "VERSION.txt"
627+ versionData , err := os .ReadFile (versionFile )
628+ if err == nil {
629+ currentVersion = strings .TrimSpace (string (versionData ))
630+
631+ versionFlag := flag .Bool ("version" , false , "Show the backend version" )
632+ flag .Parse ()
633+ if * versionFlag {
634+ fmt .Println ("Hyperloop UPV Backend Version:" , currentVersion )
635+ os .Exit (0 )
636+ }
637+ } else {
638+ fmt .Fprintf (os .Stderr , "Error reading version file (%s): %v\n " , versionFile , err )
639+ return
640+ }
641+
642+ execPath , err := os .Executable ()
643+ if err != nil {
644+ fmt .Fprintf (os .Stderr , "Error getting executable path: %v\n " , err )
645+ os .Exit (1 )
646+ }
647+
648+ execDir := filepath .Dir (execPath )
649+
650+ latestVersionStr , latestErr := getLatestVersionFromGitHub ()
651+ backendPath := filepath .Join (execDir , ".." , ".." , "backend" )
652+ _ , statErr := os .Stat (backendPath )
653+ backendExists := statErr == nil
654+
655+ if backendExists {
656+ fmt .Println ("Backend folder detected." )
657+ fmt .Print ("Do you want to update? (y/n): " )
658+ var response string
659+ fmt .Scanln (& response )
660+ if strings .ToLower (response ) == "y" {
661+ fmt .Println ("Launching updater to update the backend..." )
662+ updaterPath := filepath .Join (execDir , ".." , ".." , "updater" )
663+ cmd := exec .Command ("go" , "build" , "-o" , filepath .Join (updaterPath , "updater.exe" ), updaterPath )
664+ cmd .Stdout = os .Stdout
665+ cmd .Stderr = os .Stderr
666+ if err := cmd .Run (); err != nil {
667+ fmt .Fprintf (os .Stderr , "Error building updater: %v\n " , err )
668+ os .Exit (1 )
669+ }
670+ updaterExe := filepath .Join (updaterPath , "updater.exe" )
671+ cmd = exec .Command (updaterExe )
672+ cmd .Dir = updaterPath
673+ cmd .Stdout = os .Stdout
674+ cmd .Stderr = os .Stderr
675+ if err := cmd .Run (); err != nil {
676+ fmt .Fprintf (os .Stderr , "Error launching updater: %v\n " , err )
677+ os .Exit (1 )
678+ }
679+ os .Exit (0 )
680+ } else {
681+ fmt .Println ("Skipping update. Proceeding with the current version." )
682+ }
683+ } else {
684+ // Solo updatear si se tienen ambas versiones y latest > current
685+ current , currErr := version .NewVersion (currentVersion )
686+ latest , lastErr := version .NewVersion (latestVersionStr )
687+ if currErr != nil || lastErr != nil || latestErr != nil {
688+ fmt .Println ("Warning: Could not determine versions. Skipping update. Proceeding with the current version:" , currentVersion )
689+ } else if latest .GreaterThan (current ) {
690+ fmt .Printf ("There is a new version available: %s (current version: %s)\n " , latest , current )
691+ fmt .Print ("Do you want to update? (y/n): " )
692+ var response string
693+ fmt .Scanln (& response )
694+ if strings .ToLower (response ) == "y" {
695+ fmt .Println ("Launching updater to update the backend..." )
696+ updaterExe := filepath .Join (execDir , "updater" )
697+ if runtime .GOOS == "windows" {
698+ updaterExe += ".exe"
699+ }
700+ if _ , err := os .Stat (updaterExe ); err == nil {
701+ cmd := exec .Command (updaterExe )
702+ cmd .Dir = execDir
703+ cmd .Stdout = os .Stdout
704+ cmd .Stderr = os .Stderr
705+ if err := cmd .Run (); err != nil {
706+ fmt .Fprintf (os .Stderr , "Error launching updater: %v\n " , err )
707+ os .Exit (1 )
708+ }
709+ os .Exit (0 )
710+ } else {
711+ fmt .Fprintf (os .Stderr , "Updater not found: %s\n " , updaterExe )
712+ fmt .Println ("Skipping update. Proceeding with the current version." )
713+ }
714+ } else {
715+ fmt .Println ("Skipping update. Proceeding with the current version." )
716+ }
717+ } else {
718+ fmt .Printf ("You are using the latest version: %s\n " , current )
719+ }
720+ }
721+
722+ return
723+ }
0 commit comments