pjsversion = "1.9.8"
geckoversion = "0.24.0"
gradleversion = "5.3.1"
- nodejsversion = "v12.22.12"
+ defaultNodejsVersion = "12.22.12"
devtestDatabasePassword = "insecure_arvados_test"
)
RubyVersion string
BundlerVersion string
SingularityVersion string
+ NodejsVersion string
EatMyData bool
}
flags.StringVar(&inst.RubyVersion, "ruby-version", defaultRubyVersion, "Ruby `version` to install (do not override in production mode)")
flags.StringVar(&inst.BundlerVersion, "bundler-version", defaultBundlerVersion, "Bundler `version` to install (do not override in production mode)")
flags.StringVar(&inst.SingularityVersion, "singularity-version", defaultSingularityVersion, "Singularity `version` to install (do not override in production mode)")
+ flags.StringVar(&inst.NodejsVersion, "nodejs-version", defaultNodejsVersion, "Nodejs `version` to install (not applicable in production mode)")
flags.BoolVar(&inst.EatMyData, "eatmydata", false, "use eatmydata to speed up install")
if ok, code := cmd.ParseFlags(flags, prog, args, "", stderr); !ok {
if ok, _ := regexp.MatchString(`^\d\.\d+\.\d+$`, inst.RubyVersion); !ok {
fmt.Fprintf(stderr, "invalid argument %q for -ruby-version\n", inst.RubyVersion)
- return 64
+ return 2
}
if ok, _ := regexp.MatchString(`^\d`, inst.BundlerVersion); !ok {
fmt.Fprintf(stderr, "invalid argument %q for -bundler-version\n", inst.BundlerVersion)
- return 64
+ return 2
}
if ok, _ := regexp.MatchString(`^\d`, inst.SingularityVersion); !ok {
fmt.Fprintf(stderr, "invalid argument %q for -singularity-version\n", inst.SingularityVersion)
- return 64
+ return 2
+ }
+ if ok, _ := regexp.MatchString(`^\d`, inst.NodejsVersion); !ok {
+ fmt.Fprintf(stderr, "invalid argument %q for -nodejs-version\n", inst.NodejsVersion)
+ return 2
}
osv, err := identifyOS()
}
if !prod {
- if havenodejsversion, err := exec.Command("/usr/local/bin/node", "--version").CombinedOutput(); err == nil && string(havenodejsversion) == nodejsversion+"\n" {
- logger.Print("nodejs " + nodejsversion + " already installed")
+ if havenodejsversion, err := exec.Command("/usr/local/bin/node", "--version").CombinedOutput(); err == nil && string(havenodejsversion) == "v"+inst.NodejsVersion+"\n" {
+ logger.Print("nodejs " + inst.NodejsVersion + " already installed")
} else {
err = inst.runBash(`
-NJS=`+nodejsversion+`
+NJS=v`+inst.NodejsVersion+`
rm -rf /var/lib/arvados/node-*-linux-x64
wget --progress=dot:giga -O- https://nodejs.org/dist/${NJS}/node-${NJS}-linux-x64.tar.xz | sudo tar -C /var/lib/arvados -xJf -
ln -sfv /var/lib/arvados/node-${NJS}-linux-x64/bin/{node,npm} /usr/local/bin/
} else {
err = inst.runBash(`
npm install -g yarn
-ln -sfv /var/lib/arvados/node-`+nodejsversion+`-linux-x64/bin/{yarn,yarnpkg} /usr/local/bin/
+ln -sfv /var/lib/arvados/node-v`+inst.NodejsVersion+`-linux-x64/bin/{yarn,yarnpkg} /usr/local/bin/
`, stdout, stderr)
if err != nil {
return 1