/
deps.go
39 lines (34 loc) · 880 Bytes
/
deps.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package internal
import (
"os"
"os/exec"
)
type InstallDependenciesOptions struct {
Frozen bool
}
func InstallDependencies(repo *Repository, opts InstallDependenciesOptions) error {
metadata := PackageMetadata{
Name: "@unirepo/placeholder",
Private: true,
Description: "GENERATED FILE: DO NOT EDIT! This file is managed by unirepo.",
Dependencies: make(map[string]string),
Scripts: map[string]string{
"postinstall": "patch-package",
},
}
for dependencyName, dependency := range repo.Dependencies {
metadata.Dependencies[dependencyName] = dependency.Version
}
if err := WritePackageJSON(metadata, repo.RootDir); err != nil {
return err
}
subcommand := "install"
if opts.Frozen {
subcommand = "ci"
}
npm := exec.Command("npm", subcommand)
npm.Stdin = os.Stdin
npm.Stdout = os.Stdout
npm.Stderr = os.Stderr
return npm.Run()
}