diff --git a/src/Package/Artifact/go_win.php b/src/Package/Artifact/go_win.php index 7a87d2db2..484dc0341 100644 --- a/src/Package/Artifact/go_win.php +++ b/src/Package/Artifact/go_win.php @@ -15,6 +15,23 @@ class go_win { + /** GOROOT for the Windows Go toolchain. */ + public static function path(): string + { + return PKG_ROOT_PATH . '/go-win'; + } + + /** Path to a binary inside go-win's bin/ (go.exe, gofmt.exe, …). */ + public static function binary(string $name = 'go.exe'): string + { + return self::path() . '/bin/' . $name; + } + + public static function isInstalled(): bool + { + return is_file(self::binary()); + } + #[CustomBinary('go-win', [ 'windows-x86_64', ])] diff --git a/src/Package/Artifact/go_xcaddy.php b/src/Package/Artifact/go_xcaddy.php index 51ccfb87b..e4bd15348 100644 --- a/src/Package/Artifact/go_xcaddy.php +++ b/src/Package/Artifact/go_xcaddy.php @@ -17,6 +17,23 @@ class go_xcaddy { + /** GOROOT for the bundled Go toolchain used to build xcaddy. */ + public static function path(): string + { + return PKG_ROOT_PATH . '/go-xcaddy'; + } + + /** Path to a binary inside go-xcaddy's bin/ (xcaddy, go, …). */ + public static function binary(string $name = 'xcaddy'): string + { + return self::path() . '/bin/' . $name; + } + + public static function isInstalled(): bool + { + return is_file(self::binary()); + } + #[CustomBinary('go-xcaddy', [ 'linux-x86_64', 'linux-aarch64', diff --git a/src/Package/Artifact/rust.php b/src/Package/Artifact/rust.php index cc9bb1757..c1e896f11 100644 --- a/src/Package/Artifact/rust.php +++ b/src/Package/Artifact/rust.php @@ -16,6 +16,23 @@ class rust { + /** Install prefix the rust tarball's install.sh writes into. */ + public static function path(): string + { + return PKG_ROOT_PATH . '/rust'; + } + + /** Path to a binary inside the rust install dir (cargo, rustc, rustup, …). */ + public static function binary(string $name = 'cargo'): string + { + return self::path() . '/bin/' . $name; + } + + public static function isInstalled(): bool + { + return is_file(self::binary()); + } + #[CustomBinary('rust', [ 'linux-x86_64', 'linux-aarch64', diff --git a/src/Package/Artifact/zig.php b/src/Package/Artifact/zig.php index 95520aa4b..e1c76bb03 100644 --- a/src/Package/Artifact/zig.php +++ b/src/Package/Artifact/zig.php @@ -15,6 +15,23 @@ class zig { + /** Directory zig extracts into. */ + public static function path(): string + { + return PKG_ROOT_PATH . '/zig'; + } + + /** Path to a binary inside the zig install dir (zig, zig-cc, zig-c++, zig-ar, …). */ + public static function binary(string $name = 'zig'): string + { + return self::path() . '/' . $name; + } + + public static function isInstalled(): bool + { + return is_file(self::binary()); + } + #[CustomBinary('zig', [ 'linux-x86_64', 'linux-aarch64',