@@ -457,29 +457,29 @@ do:
457
457
}
458
458
459
459
func (rc * NpmRC ) installPackage (pkg Pkg ) (err error ) {
460
- dir := path .Join (rc .Dir (), pkg .Fullname ())
461
- lock := getInstallLock (dir )
460
+ installDir := path .Join (rc .Dir (), pkg .Fullname ())
462
461
463
- // only one install process allowed at the same time
462
+ // only one installation process allowed at the same time for the same package
463
+ lock := getInstallLock (installDir )
464
464
lock .Lock ()
465
465
defer lock .Unlock ()
466
466
467
467
// skip installation if the pnpm-lock file exists
468
- if existsFile (path .Join (dir , "pnpm-lock.yaml" )) && existsFile (path .Join (dir , "node_modules" , pkg .Name , "package.json" )) {
468
+ if existsFile (path .Join (installDir , "pnpm-lock.yaml" )) && existsFile (path .Join (installDir , "node_modules" , pkg .Name , "package.json" )) {
469
469
return nil
470
470
}
471
471
472
472
// create '.npmrc' file
473
- err = rc .createDotNpmRcFile (dir )
473
+ err = rc .createDotNpmRcFile (installDir )
474
474
if err != nil {
475
475
err = fmt .Errorf ("failed to create .npmrc file: %v" , err )
476
476
return
477
477
}
478
478
479
479
// ensure 'package.json' file to prevent read up-levels
480
- packageJsonFp := path .Join (dir , "package.json" )
480
+ packageJsonFp := path .Join (installDir , "package.json" )
481
481
if ! existsFile (packageJsonFp ) {
482
- ensureDir (dir )
482
+ ensureDir (installDir )
483
483
err = os .WriteFile (packageJsonFp , []byte ("{}" ), 0644 )
484
484
}
485
485
if err != nil {
@@ -491,12 +491,12 @@ func (rc *NpmRC) installPackage(pkg Pkg) (err error) {
491
491
if pkg .FromGithub {
492
492
err = os .WriteFile (packageJsonFp , []byte (fmt .Sprintf (`{"dependencies":{"%s":"github:%s#%s"}}` , pkg .Name , pkg .Name , pkg .Version )), 0644 )
493
493
if err == nil {
494
- err = rc .pnpm (dir )
494
+ err = rc .pnpm (installDir )
495
495
}
496
496
// pnpm will ignore github package which has been installed without `package.json` file
497
497
// so we install it manually
498
498
if err == nil {
499
- packageJsonFp := path .Join (dir , "node_modules" , pkg .Name , "package.json" )
499
+ packageJsonFp := path .Join (installDir , "node_modules" , pkg .Name , "package.json" )
500
500
if ! existsFile (packageJsonFp ) {
501
501
ensureDir (path .Dir (packageJsonFp ))
502
502
err = os .WriteFile (packageJsonFp , mustEncodeJSON (pkg ), 0644 )
@@ -505,16 +505,16 @@ func (rc *NpmRC) installPackage(pkg Pkg) (err error) {
505
505
err = parseJSONFile (packageJsonFp , & p )
506
506
if err == nil && len (p .Files ) > 0 {
507
507
// install github package with ignoring `files` field
508
- err = ghInstall (dir , pkg .Name , pkg .Version )
508
+ err = ghInstall (installDir , pkg .Name , pkg .Version )
509
509
}
510
510
}
511
511
}
512
512
} else if regexpFullVersion .MatchString (pkg .Version ) {
513
- err = rc .pnpm (dir , pkg .Fullname (), "--prefer-offline" )
513
+ err = rc .pnpm (installDir , pkg .Fullname (), "--prefer-offline" )
514
514
} else {
515
- err = rc .pnpm (dir , pkg .Fullname ())
515
+ err = rc .pnpm (installDir , pkg .Fullname ())
516
516
}
517
- packageJsonFp := path .Join (dir , "node_modules" , pkg .Name , "package.json" )
517
+ packageJsonFp := path .Join (installDir , "node_modules" , pkg .Name , "package.json" )
518
518
if err == nil && ! existsFile (packageJsonFp ) {
519
519
err = fmt .Errorf ("pnpm install %s: package.json not found" , pkg )
520
520
}
0 commit comments