Fix wrongly using msys2 tar.exe

This commit is contained in:
crazywhalecc
2026-03-20 16:07:28 +08:00
parent 64d692e105
commit c5efcc0c93
2 changed files with 5 additions and 2 deletions

View File

@@ -468,6 +468,9 @@ class ArtifactExtractor
if ($extname !== 'exe' && !is_dir($target)) {
FileSystem::createDir($target);
if (!is_dir($target)) {
throw new FileSystemException("Failed to create target directory: {$target}");
}
}
match (SystemTarget::getTargetOS()) {
'Windows' => match ($extname) {

View File

@@ -132,7 +132,7 @@ class DefaultShell extends Shell
};
$mute = $this->console_putput ? '' : ' 2>/dev/null';
$cmd = "tar {$compression_flag}xf {$archive_arg} --strip-components {$strip} -C {$target_arg}{$mute}";
$cmd = "\"C:\\Windows\\system32\\tar.exe\" {$compression_flag}xf {$archive_arg} --strip-components {$strip} -C {$target_arg}{$mute}";
$this->logCommandInfo($cmd);
logger()->debug("[TAR EXTRACT] {$cmd}");
@@ -187,7 +187,7 @@ class DefaultShell extends Shell
$extname = FileSystem::extname($archive_path);
match ($extname) {
'tar' => $this->executeTarExtract($archive_path, $target_path, 'none'),
'gz', 'tgz', 'xz', 'txz', 'bz2' => $run("{$_7z} x -so {$archive_arg} | tar -f - -x -C {$target_arg} --strip-components 1"),
'gz', 'tgz', 'xz', 'txz', 'bz2' => $run("{$_7z} x -so {$archive_arg} | \"C:\\Windows\\system32\\tar.exe\" -f - -x -C {$target_arg} --strip-components 1"),
default => $run("{$_7z} x {$archive_arg} -o{$target_arg} -y{$mute}"),
};