@@ -11,15 +11,15 @@ import scalajsbundler.util.JSON
11
11
*
12
12
* @param name Name of the command to run
13
13
*/
14
- abstract class PackageManager (val name : String , val args : Seq [ String ] , val installCommand : String ) {
14
+ abstract class PackageManager (val name : String , val installCommand : String , val installArgs : Seq [ String ] ) {
15
15
16
16
/**
17
17
* Runs the command `cmd`
18
18
* @param args Command arguments
19
19
* @param workingDir Working directory of the process
20
20
* @param logger Logger
21
21
*/
22
- def run (args : String * )(workingDir : File , logger : Logger ): Unit =
22
+ protected def run (args : String * )(workingDir : File , logger : Logger ): Unit =
23
23
Commands .run(cmd ++: args, workingDir, logger)
24
24
25
25
private val cmd = sys.props(" os.name" ).toLowerCase match {
@@ -37,7 +37,7 @@ abstract class PackageManager(val name: String, val args: Seq[String], val insta
37
37
()
38
38
}
39
39
40
- run(installCommand +: args : _* )(installDir, logger)
40
+ run(installCommand +: installArgs : _* )(installDir, logger)
41
41
42
42
this match {
43
43
case lfs : LockFileSupport =>
@@ -53,6 +53,7 @@ abstract class PackageManager(val name: String, val args: Seq[String], val insta
53
53
trait AddPackagesSupport { this : PackageManager =>
54
54
55
55
val addPackagesCommand : String
56
+ val addPackagesArgs : Seq [String ]
56
57
57
58
/**
58
59
* Locally install NPM packages
@@ -73,7 +74,7 @@ trait AddPackagesSupport { this: PackageManager =>
73
74
()
74
75
}
75
76
76
- run(addPackagesCommand +: (args ++ npmPackages): _* )(installDir, logger)
77
+ run(addPackagesCommand +: (addPackagesArgs ++ npmPackages): _* )(installDir, logger)
77
78
78
79
this match {
79
80
case lfs : LockFileSupport =>
@@ -118,9 +119,11 @@ trait LockFileSupport {
118
119
119
120
case class Npm (
120
121
lockFileName : String = " package-lock.json" ,
121
- override val args : Seq [String ] = Seq .empty,
122
- addPackagesCommand : String = " install"
123
- ) extends PackageManager (" npm" , args, " install" )
122
+ override val installCommand : String = " install" ,
123
+ override val installArgs : Seq [String ] = Seq .empty,
124
+ addPackagesCommand : String = " install" ,
125
+ override val addPackagesArgs : Seq [String ] = Seq .empty,
126
+ ) extends PackageManager (" npm" , " install" , installArgs)
124
127
with LockFileSupport
125
128
with AddPackagesSupport {
126
129
override val packageJsonContents : Map [String , JSON ] = Map .empty
@@ -129,9 +132,13 @@ case class Npm(
129
132
case class Yarn (
130
133
version : String ,
131
134
lockFileName : String = " yarn.lock" ,
132
- override val args : Seq [String ] = Yarn .DefaultArgs ,
133
- addPackagesCommand : String = " add" ) extends PackageManager (" yarn" , args, " install" )
134
- with LockFileSupport with AddPackagesSupport {
135
+ override val installCommand : String = " install" ,
136
+ override val installArgs : Seq [String ] = Yarn .DefaultArgs ,
137
+ addPackagesCommand : String = " add" ,
138
+ override val addPackagesArgs : Seq [String ] = Yarn .DefaultArgs
139
+ ) extends PackageManager (" yarn" , " install" , installArgs)
140
+ with LockFileSupport
141
+ with AddPackagesSupport {
135
142
override val packageJsonContents : Map [String , JSON ] = Map (" packageManager" -> JSON .str(s " yarn@ $version" ))
136
143
}
137
144
object Yarn {
0 commit comments