加入自动安装依赖

This commit is contained in:
marvzhang
2020-04-19 16:56:07 +08:00
parent 6508e80de5
commit ef43e2a4ff
6 changed files with 130 additions and 2 deletions

View File

@@ -1,6 +1,12 @@
package utils
import "crawlab/entity"
import (
"crawlab/entity"
"encoding/json"
"github.com/apex/log"
"io/ioutil"
"runtime/debug"
)
func GetLangList() []entity.Lang {
list := []entity.Lang{
@@ -10,6 +16,8 @@ func GetLangList() []entity.Lang {
ExecutablePaths: []string{"/usr/bin/python", "/usr/local/bin/python"},
DepExecutablePath: "/usr/local/bin/pip",
LockPath: "/tmp/install-python.lock",
DepFileName: "requirements.txt",
InstallDepArgs: "install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt",
},
{
Name: "Node.js",
@@ -18,6 +26,8 @@ func GetLangList() []entity.Lang {
DepExecutablePath: "/usr/local/bin/npm",
LockPath: "/tmp/install-nodejs.lock",
InstallScript: "install-nodejs.sh",
DepFileName: "package.json",
InstallDepArgs: "install -g --registry=https://registry.npm.taobao.org",
},
{
Name: "Java",
@@ -60,3 +70,24 @@ func GetLangFromLangNamePlain(name string) entity.Lang {
}
return entity.Lang{}
}
func GetPackageJsonDeps(filepath string) (deps []string, err error) {
data, err := ioutil.ReadFile(filepath)
if err != nil {
log.Errorf("get package.json deps error: " + err.Error())
debug.PrintStack()
return deps, err
}
var packageJson entity.PackageJson
if err := json.Unmarshal(data, &packageJson); err != nil {
log.Errorf("get package.json deps error: " + err.Error())
debug.PrintStack()
return deps, err
}
for d, v := range packageJson.Dependencies {
deps = append(deps, d+"@"+v)
}
return deps, nil
}