add arch selection to build script, send current version when fetching updates

This commit is contained in:
olebeck 2023-03-06 16:17:01 +01:00
parent ee156a1271
commit 06cf948913
2 changed files with 39 additions and 0 deletions

View File

@ -26,9 +26,13 @@ PLATFORMS = [
]
platform_filter = ""
arch_filter = ""
if len(sys.argv) > 1:
platform_filter = sys.argv[1]
if len(sys.argv) > 2:
arch_filter = sys.argv[2]
if os.path.exists("./tmp"):
shutil.rmtree("./tmp")
os.mkdir("./tmp")
@ -44,6 +48,9 @@ os.mkdir("./updates")
for (platform_name, archs, ext) in PLATFORMS:
if platform_filter and platform_filter != platform_name:
continue
archs = [a for a in archs if arch_filter == "" or a == arch_filter]
if len(archs) == 0:
continue
for GUI in [False, True]:
print(f"Building {platform_name} gui: {GUI}")
SUB1 = '-gui' if GUI else ''

View File

@ -1,6 +1,12 @@
package utils
import (
"fmt"
"io"
"net/http"
"os"
"runtime"
"github.com/sanbornm/go-selfupdate/selfupdate"
)
@ -9,10 +15,36 @@ var CmdName = "bedrocktool"
const updateServer = "https://updates.yuv.pink/"
type trequester struct {
selfupdate.Requester
}
func (httpRequester *trequester) Fetch(url string) (io.ReadCloser, error) {
req, err := http.NewRequest("GET", url, nil)
if err != nil {
return nil, err
}
// set user agent to know what versions are run
h, _ := os.Hostname()
req.Header.Add("User-Agent", fmt.Sprintf("%s %s '%s' %d", CmdName, Version, h, runtime.NumCPU()))
resp, err := http.DefaultClient.Do(req)
if err != nil {
return nil, err
}
if resp.StatusCode != 200 {
return nil, fmt.Errorf("bad http status from %s: %v", url, resp.Status)
}
return resp.Body, nil
}
var Updater = &selfupdate.Updater{
CurrentVersion: Version,
ApiURL: updateServer,
BinURL: updateServer,
Dir: "update/",
CmdName: CmdName,
Requester: &trequester{},
}