diff --git a/internal/wrench/scripts/install_zig.go b/internal/wrench/scripts/install_zig.go index 09face4..3e1015c 100644 --- a/internal/wrench/scripts/install_zig.go +++ b/internal/wrench/scripts/install_zig.go @@ -20,9 +20,9 @@ func init() { Execute: func(args ...string) error { force := len(args) == 1 && args[0] == "true" - wantZigVersion, err := QueryLatestZigVersion() + wantZigVersion, err := QueryZigVersion("mach-latest") if err != nil { - return errors.Wrap(err, "QueryLatestZigVersion") + return errors.Wrap(err, "QueryZigVersion") } zigVersion, err := Output(os.Stderr, "zig version") @@ -82,22 +82,26 @@ func init() { }) } -func QueryLatestZigVersion() (string, error) { - resp, err := http.Get("https://ziglang.org/download/index.json") +func QueryZigVersion(name string) (string, error) { + indexURL := "https://machengine.org/zig/index.json" + resp, err := http.Get(indexURL) if err != nil { return "", err } defer resp.Body.Close() - var v *struct { - Master struct { - Version string - } - } = nil + type Version struct { + Version string + } + v := map[string]Version{} if err := json.NewDecoder(resp.Body).Decode(&v); err != nil { return "", err } - return v.Master.Version, nil + version, ok := v[name] + if !ok { + return "", fmt.Errorf("no Zig version %q found in %s", name, indexURL) + } + return version.Version, nil } func zigArch() string { diff --git a/internal/wrench/scripts/mach-push-rewrite-zig-version.go b/internal/wrench/scripts/mach-push-rewrite-zig-version.go index 4908c6b..4b216d0 100644 --- a/internal/wrench/scripts/mach-push-rewrite-zig-version.go +++ b/internal/wrench/scripts/mach-push-rewrite-zig-version.go @@ -13,9 +13,9 @@ func init() { Args: nil, Description: "wrench installs prerequisites (Go), rebuilds itself, and restarts the service", ExecuteResponse: func(args ...string) (*api.ScriptResponse, error) { - wantZigVersion, err := QueryLatestZigVersion() + wantZigVersion, err := QueryZigVersion("mach-latest") if err != nil { - return nil, errors.Wrap(err, "QueryLatestZigVersion") + return nil, errors.Wrap(err, "QueryZigVersion") } pushed := []string{} diff --git a/internal/wrench/scripts/stat-mach-core.go b/internal/wrench/scripts/stat-mach-core.go index ccd8732..282a063 100644 --- a/internal/wrench/scripts/stat-mach-core.go +++ b/internal/wrench/scripts/stat-mach-core.go @@ -26,11 +26,11 @@ func init() { } step := time.Now() - zigVersion, err := QueryLatestZigVersion() + zigVersion, err := QueryZigVersion("mach-latest") if err != nil { - return nil, errors.Wrap(err, "QueryLatestZigVersion") + return nil, errors.Wrap(err, "QueryZigVersion") } - durationQueryLatestZigVersion := time.Since(step) + durationQueryZigVersion := time.Since(step) step = time.Now() // Download the Zig archive @@ -196,7 +196,7 @@ func init() { return nil, errors.Wrap(err, "GitRevParse") } - fmt.Fprintln(os.Stderr, "durationQueryLatestZigVersion", durationQueryLatestZigVersion) + fmt.Fprintln(os.Stderr, "durationQueryZigVersion", durationQueryZigVersion) fmt.Fprintln(os.Stderr, "durationDownloadZig", durationDownloadZig) fmt.Fprintln(os.Stderr, "durationExtractZig", durationExtractZig) fmt.Fprintln(os.Stderr, "durationRunZigHelp", durationRunZigHelp)