Skip to content

Commit a19668b

Browse files
committed
merge upstream/main into fix/bootrap-cli
(cherry picked from commit 8effcd5)
1 parent adcb7b1 commit a19668b

1 file changed

Lines changed: 20 additions & 37 deletions

File tree

  • crates/vite_global_cli/src/commands/global

crates/vite_global_cli/src/commands/global/install.rs

Lines changed: 20 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,20 @@ use vite_js_runtime::NodeProvider;
1616
use vite_path::{AbsolutePath, AbsolutePathBuf, current_dir};
1717
use vite_shared::{format_path_prepended, output};
1818

19-
use super::{
20-
bin_config::BinConfig,
21-
config::{
22-
get_bin_dir, get_node_modules_dir, get_packages_dir, get_tmp_dir, resolve_version,
23-
resolve_version_alias,
19+
use crate::{
20+
commands::{
21+
env::{
22+
bin_config::BinConfig,
23+
config::{
24+
get_bin_dir, get_node_modules_dir, get_packages_dir, get_tmp_dir, resolve_version,
25+
resolve_version_alias,
26+
},
27+
package_metadata::PackageMetadata,
28+
},
29+
global::CORE_SHIMS,
2430
},
25-
package_metadata::PackageMetadata,
31+
error::Error,
2632
};
27-
use crate::error::Error;
2833

2934
struct Package<'a> {
3035
spec: &'a str,
@@ -654,9 +659,6 @@ fn is_javascript_binary(path: &AbsolutePath) -> bool {
654659
false
655660
}
656661

657-
/// Core shims that should not be overwritten by package binaries.
658-
pub(crate) const CORE_SHIMS: &[&str] = &["node", "npm", "npx", "vp"];
659-
660662
/// Create a shim for a package binary.
661663
///
662664
/// On Unix: Creates a symlink to ../current/bin/vp
@@ -698,21 +700,25 @@ async fn create_package_shim(
698700

699701
#[cfg(windows)]
700702
{
703+
use crate::commands::env::{
704+
cleanup_legacy_windows_shim, get_trampoline_path, remove_or_rename_to_old,
705+
};
706+
701707
let shim_path = bin_dir.join(format!("{}.exe", bin_name));
702708

703709
// Delete before overwrite; falls back to rename if the exe is locked.
704-
super::setup::remove_or_rename_to_old(&shim_path).await;
710+
remove_or_rename_to_old(&shim_path).await;
705711

706712
// Copy the trampoline binary as <bin_name>.exe.
707713
// The trampoline detects the tool name from its own filename and sets
708714
// VP_SHIM_TOOL env var before spawning vp.exe.
709-
let trampoline_src = super::setup::get_trampoline_path()?;
715+
let trampoline_src = get_trampoline_path()?;
710716
tokio::fs::copy(trampoline_src.as_path(), &shim_path).await?;
711717

712718
// Remove legacy .cmd and shell script wrappers from previous versions.
713719
// In Git Bash/MSYS, the extensionless script takes precedence over .exe,
714720
// so leftover wrappers would bypass the trampoline.
715-
super::setup::cleanup_legacy_windows_shim(bin_dir, bin_name).await;
721+
cleanup_legacy_windows_shim(bin_dir, bin_name).await;
716722

717723
tracing::debug!("Created package trampoline shim {:?}", shim_path);
718724
}
@@ -759,6 +765,7 @@ async fn remove_package_shim(
759765
#[cfg(test)]
760766
mod tests {
761767
use super::*;
768+
use crate::commands::global::is_local_package_spec;
762769

763770
struct CurrentDirGuard(std::path::PathBuf);
764771

@@ -1007,30 +1014,6 @@ mod tests {
10071014
}
10081015
}
10091016

1010-
#[test]
1011-
fn test_parse_npm_view_version_json_string() {
1012-
let version = parse_npm_view_version(b"\"5.9.3\"\n").unwrap();
1013-
assert_eq!(version, "5.9.3");
1014-
}
1015-
1016-
#[test]
1017-
fn test_parse_npm_view_version_plain_string() {
1018-
let version = parse_npm_view_version(b"5.9.3\n").unwrap();
1019-
assert_eq!(version, "5.9.3");
1020-
}
1021-
1022-
#[test]
1023-
fn test_parse_npm_view_version_json_array_uses_latest_entry() {
1024-
let version = parse_npm_view_version(b"[\"5.9.2\", \"5.9.3\"]\n").unwrap();
1025-
assert_eq!(version, "5.9.3");
1026-
}
1027-
1028-
#[test]
1029-
fn test_parse_npm_view_version_rejects_empty_output() {
1030-
let err = parse_npm_view_version(b"\n").unwrap_err();
1031-
assert!(err.to_string().contains("empty version"));
1032-
}
1033-
10341017
#[test]
10351018
fn test_is_local_package_spec_relative_paths() {
10361019
assert!(is_local_package_spec("."));

0 commit comments

Comments
 (0)