@@ -11,15 +11,15 @@ import scalajsbundler.util.JSON
1111 *
1212 * @param name Name of the command to run
1313 */
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 ] ) {
1515
1616 /**
1717 * Runs the command `cmd`
1818 * @param args Command arguments
1919 * @param workingDir Working directory of the process
2020 * @param logger Logger
2121 */
22- def run (args : String * )(workingDir : File , logger : Logger ): Unit =
22+ protected def run (args : String * )(workingDir : File , logger : Logger ): Unit =
2323 Commands .run(cmd ++: args, workingDir, logger)
2424
2525 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
3737 ()
3838 }
3939
40- run(installCommand +: args : _* )(installDir, logger)
40+ run(installCommand +: installArgs : _* )(installDir, logger)
4141
4242 this match {
4343 case lfs : LockFileSupport =>
@@ -53,6 +53,7 @@ abstract class PackageManager(val name: String, val args: Seq[String], val insta
5353trait AddPackagesSupport { this : PackageManager =>
5454
5555 val addPackagesCommand : String
56+ val addPackagesArgs : Seq [String ]
5657
5758 /**
5859 * Locally install NPM packages
@@ -73,7 +74,7 @@ trait AddPackagesSupport { this: PackageManager =>
7374 ()
7475 }
7576
76- run(addPackagesCommand +: (args ++ npmPackages): _* )(installDir, logger)
77+ run(addPackagesCommand +: (addPackagesArgs ++ npmPackages): _* )(installDir, logger)
7778
7879 this match {
7980 case lfs : LockFileSupport =>
@@ -118,9 +119,11 @@ trait LockFileSupport {
118119
119120case class Npm (
120121 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)
124127 with LockFileSupport
125128 with AddPackagesSupport {
126129 override val packageJsonContents : Map [String , JSON ] = Map .empty
@@ -129,9 +132,13 @@ case class Npm(
129132case class Yarn (
130133 version : String ,
131134 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 {
135142 override val packageJsonContents : Map [String , JSON ] = Map (" packageManager" -> JSON .str(s " yarn@ $version" ))
136143}
137144object Yarn {
0 commit comments