mirror of
https://github.com/luckfox-eng29/kvm.git
synced 2026-01-18 03:28:19 +01:00
Release 202412292127
This commit is contained in:
85
main.go
Normal file
85
main.go
Normal file
@@ -0,0 +1,85 @@
|
||||
package kvm
|
||||
|
||||
import (
|
||||
"context"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"github.com/gwatts/rootcerts"
|
||||
)
|
||||
|
||||
var appCtx context.Context
|
||||
|
||||
func Main() {
|
||||
var cancel context.CancelFunc
|
||||
appCtx, cancel = context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
logger.Info("Starting JetKvm")
|
||||
go runWatchdog()
|
||||
go confirmCurrentSystem()
|
||||
|
||||
http.DefaultClient.Timeout = 1 * time.Minute
|
||||
LoadConfig()
|
||||
logger.Debug("config loaded")
|
||||
|
||||
err := rootcerts.UpdateDefaultTransport()
|
||||
if err != nil {
|
||||
logger.Errorf("failed to load CA certs: %v", err)
|
||||
}
|
||||
|
||||
go TimeSyncLoop()
|
||||
|
||||
StartNativeCtrlSocketServer()
|
||||
StartNativeVideoSocketServer()
|
||||
|
||||
go func() {
|
||||
err = ExtractAndRunNativeBin()
|
||||
if err != nil {
|
||||
logger.Errorf("failed to extract and run native bin: %v", err)
|
||||
//TODO: prepare an error message screen buffer to show on kvm screen
|
||||
}
|
||||
}()
|
||||
|
||||
go func() {
|
||||
time.Sleep(15 * time.Minute)
|
||||
for {
|
||||
logger.Debugf("UPDATING - Auto update enabled: %v", config.AutoUpdateEnabled)
|
||||
if config.AutoUpdateEnabled == false {
|
||||
return
|
||||
}
|
||||
if currentSession != nil {
|
||||
logger.Debugf("skipping update since a session is active")
|
||||
time.Sleep(1 * time.Minute)
|
||||
continue
|
||||
}
|
||||
includePreRelease := config.IncludePreRelease
|
||||
err = TryUpdate(context.Background(), GetDeviceID(), includePreRelease)
|
||||
if err != nil {
|
||||
logger.Errorf("failed to auto update: %v", err)
|
||||
}
|
||||
time.Sleep(1 * time.Hour)
|
||||
}
|
||||
}()
|
||||
//go RunFuseServer()
|
||||
go RunWebServer()
|
||||
go RunWebsocketClient()
|
||||
sigs := make(chan os.Signal, 1)
|
||||
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
|
||||
<-sigs
|
||||
log.Println("JetKVM Shutting Down")
|
||||
//if fuseServer != nil {
|
||||
// err := setMassStorageImage(" ")
|
||||
// if err != nil {
|
||||
// log.Printf("Failed to unmount mass storage image: %v", err)
|
||||
// }
|
||||
// err = fuseServer.Unmount()
|
||||
// if err != nil {
|
||||
// log.Printf("Failed to unmount fuse: %v", err)
|
||||
// }
|
||||
|
||||
// os.Exit(0)
|
||||
}
|
||||
Reference in New Issue
Block a user