Merge branch 'golang-dev' of https://gitea.piwalker.net/piwalker/FCLauncher into golang-dev
This commit is contained in:
commit
ab6ad50983
@ -1,6 +1,7 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
@ -11,10 +12,19 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
|
||||||
|
"github.com/inconshreveable/go-update"
|
||||||
wruntime "github.com/wailsapp/wails/v2/pkg/runtime"
|
wruntime "github.com/wailsapp/wails/v2/pkg/runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
const client_id string = "9305aeb8-5ecb-4e7a-b28f-c33aefcfbd8d"
|
const client_id string = "9305aeb8-5ecb-4e7a-b28f-c33aefcfbd8d"
|
||||||
|
const client_version string = "0.0.1"
|
||||||
|
|
||||||
|
type LauncherMetadata struct {
|
||||||
|
Schema_Version string
|
||||||
|
Version string
|
||||||
|
Desc string
|
||||||
|
Downloads map[string]string
|
||||||
|
}
|
||||||
|
|
||||||
// App struct
|
// App struct
|
||||||
type App struct {
|
type App struct {
|
||||||
@ -63,6 +73,36 @@ func openbrowser(url string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a *App) CheckPrerequisites() {
|
func (a *App) CheckPrerequisites() {
|
||||||
|
buff := new(bytes.Buffer)
|
||||||
|
err := HttpDownload("launcher.json", buff, nil)
|
||||||
|
fmt.Printf("Starting\n")
|
||||||
|
if err == nil {
|
||||||
|
data, _ := io.ReadAll(buff)
|
||||||
|
meta := LauncherMetadata{}
|
||||||
|
json.Unmarshal(data, &meta)
|
||||||
|
if client_version != meta.Version {
|
||||||
|
//Update available!
|
||||||
|
val, _ := wruntime.MessageDialog(a.Ctx, wruntime.MessageDialogOptions{Type: wruntime.QuestionDialog, Title: "Update!", Message: fmt.Sprintf("There is an update available:\n\n%s -> %s\n\nUpdate Description:\n\n%s\n\nWould you like to update?\n", client_version, meta.Version, meta.Desc)})
|
||||||
|
if val == "Yes" {
|
||||||
|
//run the update
|
||||||
|
fmt.Printf("Updating\n")
|
||||||
|
buff := new(bytes.Buffer)
|
||||||
|
HttpDownload(meta.Downloads[runtime.GOOS], buff, nil)
|
||||||
|
executable, _ := os.Executable()
|
||||||
|
err := update.Apply(buff, update.Options{})
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("Error!")
|
||||||
|
}
|
||||||
|
child := exec.Command(executable)
|
||||||
|
err = child.Start()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("Unable to launch: %s\n", err)
|
||||||
|
}
|
||||||
|
wruntime.Quit(a.Ctx)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
a.Status("Querrying Existing Instances")
|
a.Status("Querrying Existing Instances")
|
||||||
a.Instance.SearchInstances()
|
a.Instance.SearchInstances()
|
||||||
a.Status("Pulling Modpacks")
|
a.Status("Pulling Modpacks")
|
||||||
@ -90,7 +130,10 @@ func (a *App) CheckPrerequisites() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
os.Remove(filepath.Join(dir, "FCLauncher", "authentication.json"))
|
err = os.Remove(filepath.Join(dir, "FCLauncher", "authentication.json"))
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("Unable to delete auth file\n")
|
||||||
|
}
|
||||||
os.MkdirAll(filepath.Join(dir, "FCLauncher"), 0755)
|
os.MkdirAll(filepath.Join(dir, "FCLauncher"), 0755)
|
||||||
f, _ := os.OpenFile(filepath.Join(dir, "FCLauncher", "authentication.json"), os.O_CREATE|os.O_RDWR, 0755)
|
f, _ := os.OpenFile(filepath.Join(dir, "FCLauncher", "authentication.json"), os.O_CREATE|os.O_RDWR, 0755)
|
||||||
defer f.Close()
|
defer f.Close()
|
||||||
|
@ -1 +1 @@
|
|||||||
48cb20b8d107dab0a7876a449352234a
|
ad9da3c17151b053a4d2fda8e3578901
|
@ -6,6 +6,8 @@ toolchain go1.23.2
|
|||||||
|
|
||||||
require github.com/wailsapp/wails/v2 v2.9.2
|
require github.com/wailsapp/wails/v2 v2.9.2
|
||||||
|
|
||||||
|
require github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/bep/debounce v1.2.1 // indirect
|
github.com/bep/debounce v1.2.1 // indirect
|
||||||
github.com/go-ole/go-ole v1.2.6 // indirect
|
github.com/go-ole/go-ole v1.2.6 // indirect
|
||||||
|
@ -9,6 +9,8 @@ github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
|
|||||||
github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
||||||
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
|
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
|
||||||
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
|
github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf h1:WfD7VjIE6z8dIvMsI4/s+1qr5EL+zoIGev1BQj1eoJ8=
|
||||||
|
github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf/go.mod h1:hyb9oH7vZsitZCiBt0ZvifOrB+qc8PS5IiilCIb87rg=
|
||||||
github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e h1:Q3+PugElBCf4PFpxhErSzU3/PY5sFL5Z6rfv4AbGAck=
|
github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e h1:Q3+PugElBCf4PFpxhErSzU3/PY5sFL5Z6rfv4AbGAck=
|
||||||
github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e/go.mod h1:alcuEEnZsY1WQsagKhZDsoPCRoOijYqhZvPwLG0kzVs=
|
github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e/go.mod h1:alcuEEnZsY1WQsagKhZDsoPCRoOijYqhZvPwLG0kzVs=
|
||||||
github.com/labstack/echo/v4 v4.10.2 h1:n1jAhnq/elIFTHr1EYpiYtyKgx4RW9ccVgkqByZaN2M=
|
github.com/labstack/echo/v4 v4.10.2 h1:n1jAhnq/elIFTHr1EYpiYtyKgx4RW9ccVgkqByZaN2M=
|
||||||
|
Loading…
Reference in New Issue
Block a user