Skip to content

Commit

Permalink
feat: install nodejs into nodejs-prefix and make it configurable
Browse files Browse the repository at this point in the history
  • Loading branch information
jimisaacs committed Sep 8, 2021
1 parent 7701010 commit 1936d11
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
8 changes: 4 additions & 4 deletions server/nodejs.go
Original file line number Diff line number Diff line change
Expand Up @@ -145,22 +145,22 @@ type Node struct {
npmRegistry string
}

func checkNode() (node *Node, err error) {
func checkNode(nodePrefix string) (node *Node, err error) {
var installed bool
CheckNodejs:
version, major, err := getNodejsVersion()
if err != nil || major < minNodejsVersion {
PATH := os.Getenv("PATH")
nodeBinDir := "/usr/local/nodejs/bin"
nodeBinDir := fmt.Sprintf("%s/bin", nodePrefix)
if !strings.Contains(PATH, nodeBinDir) {
os.Setenv("PATH", fmt.Sprintf("%s%c%s", nodeBinDir, os.PathListSeparator, PATH))
goto CheckNodejs
} else if !installed {
err = os.RemoveAll("/usr/local/nodejs")
err = os.RemoveAll(nodePrefix)
if err != nil {
return
}
err = installNodejs("/usr/local/nodejs", nodejsLatestLTS)
err = installNodejs(nodePrefix, nodejsLatestLTS)
if err != nil {
return
}
Expand Down
7 changes: 6 additions & 1 deletion server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ func Serve(efs *embed.FS) {
cdnDomainChina string
unpkgDomain string
etcDir string
nodejsPrefix string
yarnCacheDir string
logLevel string
logDir string
Expand All @@ -63,6 +64,7 @@ func Serve(efs *embed.FS) {
flag.StringVar(&cdnDomain, "cdn-domain", "", "cdn domain")
flag.StringVar(&cdnDomainChina, "cdn-domain-china", "", "cdn domain for china")
flag.StringVar(&unpkgDomain, "unpkg-domain", "", "proxy domain for unpkg.com")
flag.StringVar(&nodejsPrefix, "nodejs-prefix", "", "nodejs installation dir (default: [etc-dir]/nodejs)")
flag.StringVar(&etcDir, "etc-dir", "/usr/local/etc/esmd", "the etc dir to store data")
flag.StringVar(&yarnCacheDir, "yarn-cache-dir", "", "the cache dir for `yarn add`")
flag.StringVar(&logLevel, "log-level", "info", "log level")
Expand Down Expand Up @@ -101,7 +103,10 @@ func Serve(efs *embed.FS) {
}
log.SetLevelByName(logLevel)

node, err = checkNode()
if nodejsPrefix == "" {
nodejsPrefix = path.Join(etcDir, "nodejs")
}
node, err = checkNode(nodejsPrefix)
if err != nil {
log.Fatalf("check nodejs env: %v", err)
}
Expand Down

0 comments on commit 1936d11

Please sign in to comment.