feat: add -version flag for jetkvm_app

This commit is contained in:
Siyuan Miao 2025-05-20 14:58:11 +02:00
parent 36cd649603
commit 12dbe6fcf0
4 changed files with 45 additions and 2 deletions

View File

@ -1,9 +1,32 @@
package main package main
import ( import (
"flag"
"fmt"
"github.com/jetkvm/kvm" "github.com/jetkvm/kvm"
"github.com/prometheus/common/version"
) )
func printVersion() {
version.Version = kvm.GetBuiltAppVersion()
app_version := version.Print("JetKVM Application")
fmt.Println(app_version)
nativeVersion, err := kvm.GetNativeVersion()
if err == nil {
fmt.Println("\nJetKVM Native, version", nativeVersion)
}
}
func main() { func main() {
versionPtr := flag.Bool("version", false, "print version and exit")
flag.Parse()
if *versionPtr {
printVersion()
return
}
kvm.Main() kvm.Main()
} }

View File

@ -174,7 +174,7 @@ cd "${REMOTE_PATH}"
chmod +x jetkvm_app_debug chmod +x jetkvm_app_debug
# Run the application in the background # Run the application in the background
PION_LOG_TRACE=${LOG_TRACE_SCOPES} ./jetkvm_app_debug PION_LOG_TRACE=${LOG_TRACE_SCOPES} ./jetkvm_app_debug | tee -a /tmp/jetkvm_app_debug.log
EOF EOF
echo "Deployment complete." echo "Deployment complete."

View File

@ -282,6 +282,22 @@ func shouldOverwrite(destPath string, srcHash []byte) bool {
return !bytes.Equal(srcHash, dstHash) return !bytes.Equal(srcHash, dstHash)
} }
func getNativeSha256() ([]byte, error) {
version, err := resource.ResourceFS.ReadFile("jetkvm_native.sha256")
if err != nil {
return nil, err
}
return version, nil
}
func GetNativeVersion() (string, error) {
version, err := getNativeSha256()
if err != nil {
return "", err
}
return string(version), nil
}
func ensureBinaryUpdated(destPath string) error { func ensureBinaryUpdated(destPath string) error {
srcFile, err := resource.ResourceFS.Open("jetkvm_native") srcFile, err := resource.ResourceFS.Open("jetkvm_native")
if err != nil { if err != nil {
@ -289,7 +305,7 @@ func ensureBinaryUpdated(destPath string) error {
} }
defer srcFile.Close() defer srcFile.Close()
srcHash, err := resource.ResourceFS.ReadFile("jetkvm_native.sha256") srcHash, err := getNativeSha256()
if err != nil { if err != nil {
nativeLogger.Debug().Msg("error reading embedded jetkvm_native.sha256, proceeding with update") nativeLogger.Debug().Msg("error reading embedded jetkvm_native.sha256, proceeding with update")
srcHash = nil srcHash = nil

4
ota.go
View File

@ -50,6 +50,10 @@ const UpdateMetadataUrl = "https://api.jetkvm.com/releases"
var builtAppVersion = "0.1.0+dev" var builtAppVersion = "0.1.0+dev"
func GetBuiltAppVersion() string {
return builtAppVersion
}
func GetLocalVersion() (systemVersion *semver.Version, appVersion *semver.Version, err error) { func GetLocalVersion() (systemVersion *semver.Version, appVersion *semver.Version, err error) {
appVersion, err = semver.NewVersion(builtAppVersion) appVersion, err = semver.NewVersion(builtAppVersion)
if err != nil { if err != nil {