Compare commits

..

3 Commits

Author SHA1 Message Date
Maksim Smirnov
e98272c218 fix error on missing files 2025-08-23 10:20:08 +02:00
Maksim Smirnov
12b5f7491f fix changed not saved to the file 2025-08-23 10:20:08 +02:00
Maksim Smirnov
e45933a3d4 fix module id 2025-08-23 10:20:08 +02:00
5 changed files with 35 additions and 9 deletions

View File

@@ -1,2 +1,2 @@
#!/usr/bin/env bash
go test github.com/amyboyd/editorconfig-cli/editorconfig $*
go test git.lab.xmaxsmi.dev/xmaxsmi/editorconfig-cli/editorconfig $*

View File

@@ -50,12 +50,18 @@ func FixCommand(c *cli.Context) error {
// Run line checkers and fixers.
lines := SplitIntoLines(fileContent)
lineNo := 1
for _, line := range lines {
for i, line := range lines {
for ruleName, ruleValue := range rules {
if lineChecker, ok := lineCheckers[ruleName]; ok {
result := lineChecker(ruleValue, line)
if !result.isOk {
if result.fixer != nil {
lines[i] = result.fixer(ruleValue, line)
hasChanged = true
fmt.Println(f + ": line " + strconv.Itoa(lineNo) + ": " + ruleName + ": fixed")
} else {
fmt.Println(f + ": line " + strconv.Itoa(lineNo) + ": " + ruleName + ": " + result.messageIfNotOk)
}
// Don't show more than 1 error per line.
break
}
@@ -64,15 +70,20 @@ func FixCommand(c *cli.Context) error {
lineNo++
}
// Rejoin the lines if any were changed
if hasChanged {
fileHandler, err := os.Open(f)
if err != nil {
fmt.Println("Could not write to " + f)
fileContent = strings.Join(lines, "\n")
}
fileHandler.WriteString(fileContent)
if hasChanged {
err := os.WriteFile(f, []byte(fileContent), 0644)
if err != nil {
fmt.Println("Could not write to " + f + ": " + err.Error())
} else {
fmt.Println("Wrote to " + f)
}
}
}
return nil
}

View File

@@ -69,6 +69,21 @@ func FindSourceFiles(searchPaths []string) ([]string, error) {
return nil, cli.NewExitError(errMessage, 2)
}
// Check if this is a specific file path (exists and is a file)
if fileInfo, err := os.Stat(searchPath); err == nil && !fileInfo.IsDir() {
// Don't run on files inside dot directories.
if !containsDotDirectoryRegex.MatchString(searchPath) {
// For explicitly specified files, always include them regardless of extension
files = append(files, searchPath)
}
continue
}
// If the file doesn't exist, skip it silently (don't error out)
if _, err := os.Stat(searchPath); err != nil {
continue
}
_ = filepath.Walk(searchPath, func(path string, fileInfo os.FileInfo, err error) error {
// Don't add paths that don't exist.
if err != nil {

2
go.mod
View File

@@ -1,4 +1,4 @@
module github.com/amyboyd/editorconfig-cli
module git.lab.xmaxsmi.dev/xmaxsmi/editorconfig-cli
go 1.25.0

View File

@@ -1,7 +1,7 @@
package main
import (
"github.com/amyboyd/editorconfig-cli/editorconfig"
"git.lab.xmaxsmi.dev/xmaxsmi/editorconfig-cli/editorconfig"
"os"
)