Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .codacy/cli-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
mode: local
37 changes: 31 additions & 6 deletions cmd/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,13 @@ var initCmd = &cobra.Command{

config.Config.CreateLocalCodacyDir()

if len(codacyRepositoryToken) == 0 {
cliLocalMode := len(codacyRepositoryToken) == 0

if cliLocalMode {
fmt.Println()
fmt.Println("ℹ️ No project token was specified, skipping fetch configurations")
noTools := []tools.Tool{}
err := createConfigurationFile(noTools)
err := createConfigurationFiles(noTools, cliLocalMode)
if err != nil {
log.Fatal(err)
}
Expand All @@ -45,7 +47,7 @@ var initCmd = &cobra.Command{
if err != nil {
log.Fatal(err)
}
err = createConfigurationFile(apiTools)
err = createConfigurationFiles(apiTools, cliLocalMode)
if err != nil {
log.Fatal(err)
}
Expand All @@ -64,7 +66,7 @@ var initCmd = &cobra.Command{
},
}

func createConfigurationFile(tools []tools.Tool) error {
func createConfigurationFiles(tools []tools.Tool, cliLocalMode bool) error {
configFile, err := os.Create(config.Config.ProjectConfigFile())
defer configFile.Close()
if err != nil {
Expand All @@ -76,6 +78,17 @@ func createConfigurationFile(tools []tools.Tool) error {
log.Fatal(err)
}

cliConfigFile, err := os.Create(config.Config.CliConfigFile())
defer cliConfigFile.Close()
if err != nil {
log.Fatal(err)
}

_, err = cliConfigFile.WriteString(cliConfigFileTemplate(cliLocalMode))
if err != nil {
log.Fatal(err)
}

return nil
}

Expand Down Expand Up @@ -113,9 +126,21 @@ tools:
`, eslintVersion, trivyVersion, pylintVersion, pmdVersion)
}

func cliConfigFileTemplate(cliLocalMode bool) string {
var cliModeString string

if cliLocalMode {
cliModeString = "local"
} else {
cliModeString = "remote"
}

return fmt.Sprintf(`mode: %s`, cliModeString)
}

func buildRepositoryConfigurationFiles(token string) error {
fmt.Println("Building project configuration files ...")
fmt.Println("Fetching project configuration from codacy ...")
fmt.Println("Building repository configuration files ...")
fmt.Println("Fetching repository configuration from codacy ...")

// API call to fetch settings
url := CodacyApiBase + "/2.0/project/analysis/configuration"
Expand Down
15 changes: 7 additions & 8 deletions config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
toolsDirectory string
localCodacyDirectory string
projectConfigFile string
cliConfigFile string

runtimes map[string]*plugins.RuntimeInfo
tools map[string]*plugins.ToolInfo
Expand Down Expand Up @@ -45,6 +46,10 @@
return c.projectConfigFile
}

func (c *ConfigType) CliConfigFile() string {

Check notice on line 49 in config/config.go

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

config/config.go#L49

exported method ConfigType.CliConfigFile should have comment or be unexported
return c.cliConfigFile
}

func (c *ConfigType) Runtimes() map[string]*plugins.RuntimeInfo {
return c.runtimes
}
Expand Down Expand Up @@ -89,14 +94,8 @@
c.toolsDirectory = filepath.Join(c.globalCacheDirectory, "tools")
c.localCodacyDirectory = ".codacy"

yamlPath := filepath.Join(c.localCodacyDirectory, "codacy.yaml")
ymlPath := filepath.Join(c.localCodacyDirectory, "codacy.yml")

if _, err := os.Stat(ymlPath); err == nil {
c.projectConfigFile = ymlPath
} else {
c.projectConfigFile = yamlPath
}
c.projectConfigFile = filepath.Join(c.localCodacyDirectory, "codacy.yaml")
c.cliConfigFile = filepath.Join(c.localCodacyDirectory, "cli-config.yaml")
}

func (c *ConfigType) CreateCodacyDirs() error {
Expand Down