Adding current project state

This commit is contained in:
2026-06-05 16:44:41 -05:00
commit 073db62fb1
10 changed files with 663 additions and 0 deletions

65
main.go Normal file
View File

@@ -0,0 +1,65 @@
package main
import (
"fmt"
"log"
"os"
"os/signal"
"path/filepath"
"syscall"
)
func main() {
fmt.Println("Initializing VS server manager...")
home, err := os.UserHomeDir()
if err != nil {
log.Fatalf("Could not locate user home dir")
}
configPath := filepath.Join(home, ".config", "vs-manager", "config.json")
cfg, err := LoadOrCreateConfig(configPath)
if err != nil {
log.Fatalf("Initialization failed: %v", err)
}
instanceName := "sample_server"
targetVersion := "1.22.3"
options := VsServerConfigOptions{
ServerName: "Sample Server",
Port: 4000,
MaxClients: 100,
Password: "",
}
err = DownloadAndExtractServer(targetVersion, cfg.Storage.InstallDir)
if err != nil {
log.Fatalf("Downloader module encountered an error: %v", err)
}
err = CreateNewInstance(instanceName, targetVersion, options, cfg)
if err != nil {
log.Fatalf("Initialization abort: %v", err)
}
procManager := NewProcessManager()
fmt.Printf("\n⚡ Launching Instance: %s (v%s)\n", instanceName, targetVersion)
err = procManager.StartInstance(instanceName, targetVersion, options, cfg)
if err != nil {
log.Fatalf("Process startup failed: %v", err)
}
sigChan := make(chan os.Signal, 1)
signal.Notify(sigChan, os.Interrupt, syscall.SIGTERM)
fmt.Println("\nServer running. Press Ctrl+C to cleanly shut down...")
<-sigChan
fmt.Println("\n\nTriggering graceful server termination sequence...")
_ = procManager.SendCommand(instanceName, "stop")
fmt.Println("Manager exited successfully.")
}