Skip to content

Commit

Permalink
Print out non-google style import aliases
Browse files Browse the repository at this point in the history
  • Loading branch information
Tit Petric committed Jul 23, 2024
1 parent b0d633c commit 168a71e
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 14 deletions.
42 changes: 36 additions & 6 deletions cmd/go-fsck/model/definition.go
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,21 @@ func (i StringSet) Map() (map[string]string, []error) {
warnings := []error{}
warningSeen := map[string]bool{}

addWarning := func(warning error) {
msg := warning.Error()
if _, seen := warningSeen[msg]; !seen {
warningSeen[msg] = true
warnings = append(warnings, warning)
}
}

cleanPackageName := func(name string) (string, bool) {
clean := name
clean = strings.ToLower(clean)
clean = strings.ReplaceAll(clean, "_", "")
return clean, name == clean
}

result := map[string]string{}
imports := i.All()

Expand All @@ -160,7 +175,25 @@ func (i StringSet) Map() (map[string]string, []error) {
short = path.Base(long)
}

val, ok := result[short]
if short == "C" {
continue
}

if strings.HasSuffix(short, "_test") {
clean, ok := cleanPackageName(short[:len(short)-5])
if !ok {
addWarning(fmt.Errorf("Alias %s should be %s_test", short, clean))
}
continue
}

clean, ok := cleanPackageName(short)
if !ok {
addWarning(fmt.Errorf("Alias %s should be %s", short, clean))
continue
}

val, ok := result[clean]

if ok && val != long {
warning := "Import conflict for %s, "
Expand All @@ -170,13 +203,10 @@ func (i StringSet) Map() (map[string]string, []error) {
} else {
warning += long + " != " + val
}
if _, seen := warningSeen[warning]; !seen {
warningSeen[warning] = true
warnings = append(warnings, fmt.Errorf(warning, short))
}
addWarning(fmt.Errorf(warning, short))
}

result[short] = long
result[clean] = long
}

return result, warnings
Expand Down
7 changes: 5 additions & 2 deletions cmd/go-fsck/model/restored/go-fsck.json
Original file line number Diff line number Diff line change
Expand Up @@ -447,9 +447,12 @@
"Base"
],
"strings": [
"ToLower",
"ReplaceAll",
"Contains",
"Split",
"Trim"
"Trim",
"HasSuffix"
]
},
"Name": "Map",
Expand All @@ -459,7 +462,7 @@
"[]error"
],
"Signature": "Map () (map[string]string, []error)",
"Source": "// Map returns a map with the short package name as the key\n// and the full import path as the value.\nfunc (i StringSet) Map() (map[string]string, []error) {\n\twarnings := []error{}\n\twarningSeen := map[string]bool{}\n\n\tresult := map[string]string{}\n\timports := i.All()\n\n\tfor _, imported := range imports {\n\t\tvar short, long string\n\n\t\t// aliased package\n\t\tif strings.Contains(imported, \" \") {\n\t\t\tline := strings.Split(imported, \" \")\n\t\t\tshort, long = line[0], strings.Trim(line[1], `\"`)\n\t\t} else {\n\t\t\tlong = strings.Trim(imported, `\"`)\n\t\t\tshort = path.Base(long)\n\t\t}\n\n\t\tval, ok := result[short]\n\n\t\tif ok \u0026\u0026 val != long {\n\t\t\twarning := \"Import conflict for %s, \"\n\t\t\t// Sort val/long so shorter is left hand side\n\t\t\tif len(val) \u003c len(long) {\n\t\t\t\twarning += val + \" != \" + long\n\t\t\t} else {\n\t\t\t\twarning += long + \" != \" + val\n\t\t\t}\n\t\t\tif _, seen := warningSeen[warning]; !seen {\n\t\t\t\twarningSeen[warning] = true\n\t\t\t\twarnings = append(warnings, fmt.Errorf(warning, short))\n\t\t\t}\n\t\t}\n\n\t\tresult[short] = long\n\t}\n\n\treturn result, warnings\n}"
"Source": "// Map returns a map with the short package name as the key\n// and the full import path as the value.\nfunc (i StringSet) Map() (map[string]string, []error) {\n\twarnings := []error{}\n\twarningSeen := map[string]bool{}\n\n\taddWarning := func(warning error) {\n\t\tmsg := warning.Error()\n\t\tif _, seen := warningSeen[msg]; !seen {\n\t\t\twarningSeen[msg] = true\n\t\t\twarnings = append(warnings, warning)\n\t\t}\n\t}\n\n\tcleanPackageName := func(name string) (string, bool) {\n\t\tclean := name\n\t\tclean = strings.ToLower(clean)\n\t\tclean = strings.ReplaceAll(clean, \"_\", \"\")\n\t\treturn clean, name == clean\n\t}\n\n\tresult := map[string]string{}\n\timports := i.All()\n\n\tfor _, imported := range imports {\n\t\tvar short, long string\n\n\t\t// aliased package\n\t\tif strings.Contains(imported, \" \") {\n\t\t\tline := strings.Split(imported, \" \")\n\t\t\tshort, long = line[0], strings.Trim(line[1], `\"`)\n\t\t} else {\n\t\t\tlong = strings.Trim(imported, `\"`)\n\t\t\tshort = path.Base(long)\n\t\t}\n\n\t\tif short == \"C\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tif strings.HasSuffix(short, \"_test\") {\n\t\t\tclean, ok := cleanPackageName(short[:len(short)-5])\n\t\t\tif !ok {\n\t\t\t\taddWarning(fmt.Errorf(\"Alias %s should be %s_test\", short, clean))\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tclean, ok := cleanPackageName(short)\n\t\tif !ok {\n\t\t\taddWarning(fmt.Errorf(\"Alias %s should be %s\", short, clean))\n\t\t\tcontinue\n\t\t}\n\n\t\tval, ok := result[clean]\n\n\t\tif ok \u0026\u0026 val != long {\n\t\t\twarning := \"Import conflict for %s, \"\n\t\t\t// Sort val/long so shorter is left hand side\n\t\t\tif len(val) \u003c len(long) {\n\t\t\t\twarning += val + \" != \" + long\n\t\t\t} else {\n\t\t\t\twarning += long + \" != \" + val\n\t\t\t}\n\t\t\taddWarning(fmt.Errorf(warning, short))\n\t\t}\n\n\t\tresult[clean] = long\n\t}\n\n\treturn result, warnings\n}"
},
{
"Kind": "func",
Expand Down
42 changes: 36 additions & 6 deletions cmd/go-fsck/model/restored/string_set.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,21 @@ func (i StringSet) Map() (map[string]string, []error) {
warnings := []error{}
warningSeen := map[string]bool{}

addWarning := func(warning error) {
msg := warning.Error()
if _, seen := warningSeen[msg]; !seen {
warningSeen[msg] = true
warnings = append(warnings, warning)
}
}

cleanPackageName := func(name string) (string, bool) {
clean := name
clean = strings.ToLower(clean)
clean = strings.ReplaceAll(clean, "_", "")
return clean, name == clean
}

result := map[string]string{}
imports := i.All()

Expand All @@ -64,7 +79,25 @@ func (i StringSet) Map() (map[string]string, []error) {
short = path.Base(long)
}

val, ok := result[short]
if short == "C" {
continue
}

if strings.HasSuffix(short, "_test") {
clean, ok := cleanPackageName(short[:len(short)-5])
if !ok {
addWarning(fmt.Errorf("Alias %s should be %s_test", short, clean))
}
continue
}

clean, ok := cleanPackageName(short)
if !ok {
addWarning(fmt.Errorf("Alias %s should be %s", short, clean))
continue
}

val, ok := result[clean]

if ok && val != long {
warning := "Import conflict for %s, "
Expand All @@ -74,13 +107,10 @@ func (i StringSet) Map() (map[string]string, []error) {
} else {
warning += long + " != " + val
}
if _, seen := warningSeen[warning]; !seen {
warningSeen[warning] = true
warnings = append(warnings, fmt.Errorf(warning, short))
}
addWarning(fmt.Errorf(warning, short))
}

result[short] = long
result[clean] = long
}

return result, warnings
Expand Down

0 comments on commit 168a71e

Please sign in to comment.