diff --git a/src/Package/Artifact/go_win.php b/src/Package/Artifact/go_win.php index 7a87d2db..484dc034 100644 --- a/src/Package/Artifact/go_win.php +++ b/src/Package/Artifact/go_win.php @@ -15,6 +15,23 @@ use StaticPHP\Util\GlobalEnvManager; 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 51ccfb87..e4bd1534 100644 --- a/src/Package/Artifact/go_xcaddy.php +++ b/src/Package/Artifact/go_xcaddy.php @@ -17,6 +17,23 @@ use StaticPHP\Util\System\LinuxUtil; 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 cc9bb175..c1e896f1 100644 --- a/src/Package/Artifact/rust.php +++ b/src/Package/Artifact/rust.php @@ -16,6 +16,23 @@ use StaticPHP\Util\System\LinuxUtil; 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 95520aa4..e1c76bb0 100644 --- a/src/Package/Artifact/zig.php +++ b/src/Package/Artifact/zig.php @@ -15,6 +15,23 @@ use StaticPHP\Runtime\SystemTarget; 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',