github.com/joey-fossa/fossa-cli@v0.7.34-0.20190708193710-569f1e8679f0/testing/runfossa/runfossa.go (about) 1 package runfossa 2 3 import ( 4 "encoding/json" 5 6 "github.com/fossas/fossa-cli/api/fossa" 7 "github.com/fossas/fossa-cli/exec" 8 ) 9 10 // Init executes fossa init the provided directory 11 func Init(projectDir string) (stdout, stderr string, err error) { 12 return runfossa(projectDir, []string{"init"}) 13 } 14 15 func LicenseReport(projectDir string, args []string) (stdout, stderr string, err error) { 16 args = append([]string{"report", "licenses"}, args...) 17 return runfossa(projectDir, args) 18 } 19 20 func DependencyReport(projectDir string, args []string) (stdout, stderr string, err error) { 21 args = append([]string{"report", "dependencies"}, args...) 22 return runfossa(projectDir, args) 23 } 24 25 func AnalyzeOutput(dir string, args []string) ([]fossa.SourceUnit, error) { 26 stdout, _, err := runfossa(dir, append([]string{"analyze", "--output"}, args...)) 27 if err != nil { 28 return nil, err 29 } 30 var parsed []fossa.SourceUnit 31 err = json.Unmarshal([]byte(stdout), &parsed) 32 if err != nil { 33 return nil, err 34 } 35 return parsed, nil 36 } 37 38 func runfossa(projectDir string, argv []string) (stdout, stderr string, err error) { 39 cmd := exec.Cmd{ 40 Argv: argv, 41 Name: "fossa", 42 Dir: projectDir, 43 Command: "fossa", 44 } 45 46 return exec.Run(cmd) 47 48 }