@@ -2,7 +2,7 @@ use crate::files::versions::{remove, upsert};
2
2
use crate :: packages;
3
3
use crate :: packages:: Package ;
4
4
use crate :: runner:: run;
5
- use crate :: shims:: add_shim;
5
+ use crate :: shims:: { add_shim, remove_shim } ;
6
6
use colored:: * ;
7
7
use std:: env;
8
8
use std:: error:: Error ;
@@ -46,7 +46,7 @@ pub fn list_packages(name: Option<&str>) -> Result<(), Box<dyn Error>> {
46
46
}
47
47
Ok ( ( ) )
48
48
} else {
49
- Err ( Box :: from ( "Could not find any packages installed." ) )
49
+ Err ( "Could not find any packages installed." . into ( ) )
50
50
}
51
51
}
52
52
}
@@ -61,10 +61,13 @@ pub fn add_package(name: String, version: String, set_default: bool) -> Result<(
61
61
if set_default {
62
62
package. versions . current = version. clone ( ) ;
63
63
}
64
- run_pull_and_add_shim ( & name, & version, package) ?;
64
+ let current = package. versions . current . clone ( ) ;
65
+ do_add_package ( & name, & version, package) ?;
66
+ println ! ( "Added '{}' version '{}'. Current version is '{}'." , name, version, current) ;
65
67
} else {
66
68
let package = Package :: new ( & name, crate :: files:: versions:: Package :: new ( & version) ) ?;
67
- run_pull_and_add_shim ( & name, & version, package) ?;
69
+ do_add_package ( & name, & version, package) ?;
70
+ println ! ( "Added '{}' version '{}'. Current version is '{}'." , name, version, version) ;
68
71
}
69
72
Ok ( ( ) )
70
73
}
@@ -82,7 +85,7 @@ pub fn remove_package(name: String, version: Option<String>) -> Result<(), Box<d
82
85
if package. versions . versions . contains ( & version) {
83
86
package. versions . versions . retain ( |v| v != version. as_str ( ) ) ;
84
87
if package. versions . versions . is_empty ( ) {
85
- remove ( & name) ?;
88
+ do_remove_package ( & name) ?;
86
89
println ! ( "Removed package '{}'." , name) ;
87
90
} else {
88
91
upsert ( & name, package) ?;
@@ -95,7 +98,8 @@ pub fn remove_package(name: String, version: Option<String>) -> Result<(), Box<d
95
98
}
96
99
}
97
100
( Some ( _) , None ) => {
98
- remove ( & name) ?;
101
+ do_remove_package ( & name) ?;
102
+ println ! ( "Removed package '{}'." , name) ;
99
103
Ok ( ( ) )
100
104
}
101
105
( None , _) => Err ( format ! ( "Package '{}' does not exists." , name) . into ( ) ) ,
@@ -130,11 +134,7 @@ pub fn run_package(name: String, subcommand: Vec<String>) -> Result<(), Box<dyn
130
134
}
131
135
}
132
136
133
- fn run_pull_and_add_shim (
134
- name : & String ,
135
- version : & String ,
136
- package : Package ,
137
- ) -> Result < ( ) , Box < dyn Error > > {
137
+ fn do_add_package ( name : & String , version : & String , package : Package ) -> Result < ( ) , Box < dyn Error > > {
138
138
let mut new_package = package. clone ( ) ;
139
139
new_package. versions . current = version. clone ( ) ;
140
140
if crate :: runner:: pull ( & new_package) {
@@ -145,3 +145,9 @@ fn run_pull_and_add_shim(
145
145
Err ( format ! ( "Failed to add package '{}' at version '{}'." , name, version) . into ( ) )
146
146
}
147
147
}
148
+
149
+ fn do_remove_package ( name : & String ) -> Result < ( ) , Box < dyn Error > > {
150
+ remove ( & name) ?;
151
+ remove_shim ( & name) ?;
152
+ Ok ( ( ) )
153
+ }
0 commit comments