@@ -26,16 +26,29 @@ public partial class Cargo : PackageManager
26
26
public Cargo ( )
27
27
{
28
28
Dependencies = [
29
- // cargo-update is required to check for and update installed packages
29
+ // cargo-update is required to check for installed and upgradable packages
30
30
new ManagerDependency (
31
31
"cargo-update" ,
32
32
Path . Join ( Environment . SystemDirectory , "windowspowershell\\ v1.0\\ powershell.exe" ) ,
33
33
"-ExecutionPolicy Bypass -NoLogo -NoProfile -Command \" & {cargo install cargo-update; if ($error.count -ne 0){pause}}\" " ,
34
34
"cargo install cargo-update" ,
35
35
async ( ) => ( await CoreTools . WhichAsync ( "cargo-install-update.exe" ) ) . Item1 ) ,
36
+ // Cargo-binstall is required to install and update cargo binaries
37
+ new ManagerDependency (
38
+ "cargo-binstall" ,
39
+ Path . Join ( Environment . SystemDirectory , "windowspowershell\\ v1.0\\ powershell.exe" ) ,
40
+ "-ExecutionPolicy Bypass -NoLogo -NoProfile -Command \" & {Set-ExecutionPolicy Unrestricted -Scope Process; iex (iwr \\ \" https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.ps1\\ \" ).Content; if ($error.count -ne 0){pause}}\" " ,
41
+ "Set-ExecutionPolicy Unrestricted -Scope Process; iex (iwr \" https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.ps1\" ).Content" ,
42
+ async ( ) => ( await CoreTools . WhichAsync ( "cargo-binstall.exe" ) ) . Item1 )
36
43
] ;
37
44
38
- Capabilities = new ManagerCapabilities { } ;
45
+ Capabilities = new ManagerCapabilities
46
+ {
47
+ CanRunAsAdmin = true ,
48
+ CanSkipIntegrityChecks = true ,
49
+ SupportsCustomVersions = true ,
50
+ SupportsCustomLocations = true ,
51
+ } ;
39
52
40
53
var cratesIo = new ManagerSource ( this , "crates.io" , new Uri ( "https://index.crates.io/" ) ) ;
41
54
@@ -46,9 +59,9 @@ public Cargo()
46
59
IconId = IconType . Rust ,
47
60
ColorIconId = "cargo_color" ,
48
61
ExecutableFriendlyName = "cargo.exe" ,
49
- InstallVerb = "install " ,
62
+ InstallVerb = "binstall " ,
50
63
UninstallVerb = "uninstall" ,
51
- UpdateVerb = "install-update " ,
64
+ UpdateVerb = "binstall " ,
52
65
ExecutableCallArgs = "" ,
53
66
DefaultSource = cratesIo ,
54
67
KnownSources = [ cratesIo ]
0 commit comments