52 lines
1.1 KiB
Go
52 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"os/exec"
|
|
"time"
|
|
)
|
|
|
|
// Function to check for updates and restart the server if an update is found
|
|
func checkForUpdates() {
|
|
repoURL := "https://weforge.xyz/Spitfire/Search.git"
|
|
localDir := "." // Assume the repository is cloned in the current directory
|
|
|
|
for {
|
|
err := gitPull(repoURL, localDir)
|
|
if err != nil {
|
|
fmt.Println("Error checking for updates:", err)
|
|
time.Sleep(10 * time.Minute)
|
|
continue
|
|
}
|
|
|
|
fmt.Println("Update found. Syncing updates...")
|
|
nodeUpdateSync()
|
|
|
|
fmt.Println("Restarting server to apply updates...")
|
|
update()
|
|
time.Sleep(10 * time.Minute)
|
|
}
|
|
}
|
|
|
|
// Function to pull updates from the Git repository
|
|
func gitPull(repoURL, localDir string) error {
|
|
cmd := exec.Command("git", "-C", localDir, "pull", repoURL)
|
|
cmd.Stdout = os.Stdout
|
|
cmd.Stderr = os.Stderr
|
|
return cmd.Run()
|
|
}
|
|
|
|
// Function to download updates and restart the server
|
|
func update() {
|
|
cmd := exec.Command("sh", "run.sh")
|
|
cmd.Stdout = os.Stdout
|
|
cmd.Stderr = os.Stderr
|
|
err := cmd.Start()
|
|
if err != nil {
|
|
fmt.Println("Error starting the server:", err)
|
|
return
|
|
}
|
|
|
|
os.Exit(0)
|
|
}
|