-
Notifications
You must be signed in to change notification settings - Fork 36
/
Copy pathinstall.go
92 lines (74 loc) · 1.85 KB
/
install.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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
package api
import (
"encoding/json"
"fmt"
"io/ioutil"
"os"
"github.com/project-flogo/cli/common"
"github.com/project-flogo/cli/util"
)
func InstallPackage(project common.AppProject, pkg string) error {
flogoImport, err := util.ParseImport(pkg)
if err != nil {
return err
}
err = project.AddImports(false, true, flogoImport)
if err != nil {
return err
}
path, err := project.GetPath(flogoImport)
if Verbose() {
fmt.Println("Installed path", path)
}
if err != nil {
return err
}
legacySupportRequired := false
desc, err := util.GetContribDescriptor(path)
if desc != nil {
cType := desc.GetContribType()
if desc.IsLegacy {
legacySupportRequired = true
cType = "legacy " + desc.GetContribType()
err := CreateLegacyMetadata(path, desc.GetContribType(), pkg)
if err != nil {
return err
}
}
fmt.Printf("Installed %s: %s\n", cType, flogoImport)
//instStr := fmt.Sprintf("Installed %s:", cType)
//fmt.Printf("%-20s %s\n", instStr, imp)
}
if legacySupportRequired {
err := InstallLegacySupport(project)
if err != nil {
return err
}
}
return nil
}
func InstallReplacedPackage(project common.AppProject, replacedPath string, pkg string) error {
err := project.DepManager().InstallReplacedPkg(pkg, replacedPath)
if err != nil {
return err
}
return InstallPackage(project, pkg+"@v0.0.0")
}
func InstallContribBundle(project common.AppProject, path string) error {
file, err := ioutil.ReadFile(path)
if err != nil {
return err
}
var contribBundleDescriptor util.FlogoContribBundleDescriptor
err = json.Unmarshal(file, &contribBundleDescriptor)
if err != nil {
return err
}
for _, contrib := range contribBundleDescriptor.Contribs {
err := InstallPackage(project, contrib)
if err != nil {
fmt.Fprintf(os.Stderr, "Error installing contrib '%s': %s", contrib, err.Error())
}
}
return nil
}