b17804a3c1
sonar-scanner invocation modified to get real-time output
72 lines
1.5 KiB
Go
Executable File
72 lines
1.5 KiB
Go
Executable File
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"os/exec"
|
|
"strings"
|
|
)
|
|
|
|
type (
|
|
Config struct {
|
|
Key string
|
|
Name string
|
|
Host string
|
|
Token string
|
|
|
|
Version string
|
|
Branch string
|
|
Sources string
|
|
Timeout string
|
|
Inclusions string
|
|
Exclusions string
|
|
Level string
|
|
ShowProfiling string
|
|
BranchAnalysis bool
|
|
UsingProperties bool
|
|
}
|
|
Plugin struct {
|
|
Config Config
|
|
}
|
|
)
|
|
|
|
func (p Plugin) Exec() error {
|
|
args := []string{
|
|
"-Dsonar.host.url=" + p.Config.Host,
|
|
"-Dsonar.login=" + p.Config.Token,
|
|
}
|
|
|
|
if !p.Config.UsingProperties {
|
|
argsParameter := []string{
|
|
"-Dsonar.projectKey=" + strings.Replace(p.Config.Key, "/", ":", -1),
|
|
"-Dsonar.projectName=" + p.Config.Name,
|
|
"-Dsonar.projectVersion=" + p.Config.Version,
|
|
"-Dsonar.sources=" + p.Config.Sources,
|
|
"-Dsonar.ws.timeout=" + p.Config.Timeout,
|
|
"-Dsonar.inclusions=" + p.Config.Inclusions,
|
|
"-Dsonar.exclusions=" + p.Config.Exclusions,
|
|
"-Dsonar.log.level=" + p.Config.Level,
|
|
"-Dsonar.showProfiling=" + p.Config.ShowProfiling,
|
|
"-Dsonar.scm.provider=git",
|
|
}
|
|
args = append(args, argsParameter...)
|
|
}
|
|
|
|
|
|
if p.Config.BranchAnalysis {
|
|
args = append(args, "-Dsonar.branch.name=" + p.Config.Branch)
|
|
}
|
|
|
|
cmd := exec.Command("sonar-scanner", args...)
|
|
// fmt.Printf("==> Executing: %s\n", strings.Join(cmd.Args, " "))
|
|
cmd.Stdout = os.Stdout
|
|
cmd.Stderr = os.Stderr
|
|
fmt.Printf("==> Code Analysis Result:\n")
|
|
err := cmd.Run()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|