@@ -4,6 +4,7 @@ use std::fs;
4
4
use std:: path:: PathBuf ;
5
5
6
6
use askama:: Template ;
7
+ use pathdiff:: diff_paths;
7
8
8
9
use crate :: configuration_file:: ConfigurationFile ;
9
10
use crate :: lerna_manifest:: LernaManifest ;
@@ -18,7 +19,6 @@ struct MakefileTemplate<'a> {
18
19
package_directory : & ' a str ,
19
20
scoped_package_name : & ' a str ,
20
21
unscoped_package_name : & ' a str ,
21
- pack_archive_filename : & ' a str ,
22
22
internal_dependency_package_json_filenames_inclusive : & ' a Vec < String > ,
23
23
create_pack_target : & ' a bool ,
24
24
npm_pack_archive_dependencies : & ' a HashMap < String , String > ,
@@ -47,17 +47,19 @@ pub fn make_dependency_makefile(opts: crate::opts::MakeDepend) -> Result<(), Box
47
47
let npm_pack_archive_dependencies = & internal_dependencies_exclusive
48
48
. iter ( )
49
49
. map ( |dependency| {
50
- let target = package_manifest
50
+ let target_directory = package_manifest
51
51
. directory ( )
52
- . join ( ".internal-npm-dependencies" )
52
+ . join ( ".internal-npm-dependencies" ) ;
53
+ let target = target_directory
53
54
. join ( dependency. npm_pack_file_basename ( ) )
54
55
. to_str ( )
55
56
. expect ( "npm pack filename is not UTF-8 encodable" )
56
57
. to_owned ( ) ;
57
- let source = dependency
58
- . npm_pack_filename ( )
58
+ let source_package_directory = dependency. directory ( ) ;
59
+ let source = diff_paths ( source_package_directory, target_directory)
60
+ . expect ( "no relative path to source package" )
59
61
. to_str ( )
60
- . expect ( "npm pack filename is not UTF-8 encodable" )
62
+ . expect ( "source package path is not UTF-8 encodable" )
61
63
. to_owned ( ) ;
62
64
( target, source)
63
65
} )
@@ -79,10 +81,6 @@ pub fn make_dependency_makefile(opts: crate::opts::MakeDepend) -> Result<(), Box
79
81
. expect ( "Package directory is not UTF-8 encodable" ) ,
80
82
scoped_package_name : & package_manifest. contents . name ,
81
83
unscoped_package_name : package_manifest. unscoped_package_name ( ) ,
82
- pack_archive_filename : package_manifest
83
- . npm_pack_filename ( )
84
- . to_str ( )
85
- . expect ( "npm pack filename is not UTF-8 encodable" ) ,
86
84
internal_dependency_package_json_filenames_inclusive :
87
85
& internal_dependency_package_json_filenames_inclusive
88
86
. iter ( )
0 commit comments