mirror of
https://github.com/crawlab-team/crawlab.git
synced 2026-01-27 17:50:53 +01:00
加入自动安装依赖
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user