File tree Expand file tree Collapse file tree 1 file changed +30
-2
lines changed Expand file tree Collapse file tree 1 file changed +30
-2
lines changed Original file line number Diff line number Diff line change @@ -238,10 +238,12 @@ pub fn remove_verbatim(path: &Path) -> String {
238
238
/// e.g.
239
239
/// ```txt
240
240
/// http.d/client.d.er -> http.client
241
- /// .../torch/1.0.0/src/lib.d.er -> torch
242
- /// .../torch/1.0.0/src/random.d.er -> torch/random
241
+ /// $ERG_PATH/pkgs/certified/torch/1.0.0/src/lib.d.er -> torch
242
+ /// $ERG_PATH/pkgs/certified/torch/1.0.0/src/random.d.er -> torch/random
243
+ /// /users/foo/torch/src/lib.d.er -> torch
243
244
/// math.d.er -> math
244
245
/// ```
246
+ /// FIXME: split by `.` instead of `/`
245
247
pub fn mod_name ( path : & Path ) -> Str {
246
248
let path = match path. strip_prefix ( erg_pkgs_path ( ) ) {
247
249
Ok ( path) => {
@@ -267,6 +269,32 @@ pub fn mod_name(path: &Path) -> Str {
267
269
. join ( "/" ) ;
268
270
return Str :: rc ( format ! ( "{mod_root}/{sub}" ) . trim_end_matches ( '/' ) ) ;
269
271
}
272
+ // using local or git path
273
+ Err ( _) if path. display ( ) . to_string ( ) . split ( "/src/" ) . count ( ) > 1 => {
274
+ // <mod_root>/src/<sub>
275
+ let path = path. display ( ) . to_string ( ) ;
276
+ let mod_root = path
277
+ . split ( "/src/" )
278
+ . next ( )
279
+ . unwrap ( )
280
+ . split ( '/' )
281
+ . last ( )
282
+ . unwrap ( ) ;
283
+ let sub = path
284
+ . split ( "/src/" )
285
+ . nth ( 1 )
286
+ . unwrap ( )
287
+ . split ( '/' )
288
+ . map ( |c| {
289
+ c. trim_end_matches ( "lib.d.er" )
290
+ . trim_end_matches ( ".d.er" )
291
+ . trim_end_matches ( ".d" )
292
+ . to_string ( )
293
+ } )
294
+ . collect :: < Vec < _ > > ( )
295
+ . join ( "/" ) ;
296
+ return Str :: rc ( format ! ( "{mod_root}/{sub}" ) . trim_end_matches ( '/' ) ) ;
297
+ }
270
298
Err ( _) => path,
271
299
} ;
272
300
let mut name = path
You can’t perform that action at this time.
0 commit comments