File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -34,7 +34,10 @@ chv list # Installed versions
3434chv list --available # Available for download
3535
3636# Manage default version
37- chv use 25.12.5.44 # Set default
37+ chv use 25.12.5.44 # Exact version
38+ chv use stable # Latest stable (installs if needed)
39+ chv use lts # Latest LTS (installs if needed)
40+ chv use 25.12 # Latest 25.12.x.x (installs if needed)
3841chv which # Show current default
3942
4043# Remove a version
Original file line number Diff line number Diff line change @@ -37,7 +37,7 @@ async fn run(cmd: Commands) -> Result<()> {
3737 list_installed ( )
3838 }
3939 }
40- Commands :: Use { version } => use_version ( & version) ,
40+ Commands :: Use { version } => use_version ( & version) . await ,
4141 Commands :: Remove { version } => remove ( & version) ,
4242 Commands :: Which => which ( ) ,
4343 Commands :: Init => {
@@ -107,7 +107,18 @@ async fn list_available() -> Result<()> {
107107 Ok ( ( ) )
108108}
109109
110- fn use_version ( version : & str ) -> Result < ( ) > {
110+ async fn use_version ( version_spec : & str ) -> Result < ( ) > {
111+ println ! ( "Resolving version {}..." , version_spec) ;
112+ let entry = version_manager:: resolve_version ( version_spec) . await ?;
113+ let version = & entry. version ;
114+
115+ // Install if not already installed
116+ let installed = version_manager:: list_installed_versions ( ) ?;
117+ if !installed. contains ( version) {
118+ println ! ( "Version {} not installed, installing..." , version) ;
119+ version_manager:: install_version ( version, & entry. channel ) . await ?;
120+ }
121+
111122 version_manager:: set_default_version ( version) ?;
112123 println ! ( "Default version set to {}" , version) ;
113124 Ok ( ( ) )
You can’t perform that action at this time.
0 commit comments