mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Do not delete text that fails preformat-balance
If preformat lines are unbalanced, do not delete all the lines from there to end of file. That might be the only copy of edits made by the user. Do not print entire file contents for munge errors affecting entire file.
This commit is contained in:
parent
9264340338
commit
1ce3081e55
@ -119,8 +119,12 @@ func (f fileProcessor) visit(path string) error {
|
||||
}
|
||||
fmt.Printf("%s:\n", munge.name)
|
||||
if *verbose {
|
||||
fmt.Printf("INPUT: <<<%v>>>\n", mungeLines)
|
||||
fmt.Printf("MUNGED: <<<%v>>>\n", after)
|
||||
if len(mungeLines) <= 20 {
|
||||
fmt.Printf("INPUT: <<<%v>>>\n", mungeLines)
|
||||
fmt.Printf("MUNGED: <<<%v>>>\n", after)
|
||||
} else {
|
||||
fmt.Printf("not printing failed chunk: too many lines\n")
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
|
@ -45,7 +45,7 @@ func updatePreformatted(filePath string, mlines mungeLines) (mungeLines, error)
|
||||
// If the file ends on a preformatted line, there must have been an imbalance.
|
||||
func checkPreformatBalance(filePath string, mlines mungeLines) (mungeLines, error) {
|
||||
if len(mlines) > 0 && mlines[len(mlines)-1].preformatted {
|
||||
return nil, fmt.Errorf("file ends in preformatted block")
|
||||
return mlines, fmt.Errorf("unbalanced triple backtick delimiters")
|
||||
}
|
||||
return mlines, nil
|
||||
}
|
||||
|
@ -69,12 +69,29 @@ func TestPreformattedImbalance(t *testing.T) {
|
||||
}
|
||||
for i, c := range cases {
|
||||
in := getMungeLines(c.in)
|
||||
_, err := checkPreformatBalance("filename.md", in)
|
||||
out, err := checkPreformatBalance("filename.md", in)
|
||||
if err != nil && c.ok {
|
||||
t.Errorf("case[%d]: expected success", i)
|
||||
}
|
||||
if err == nil && !c.ok {
|
||||
t.Errorf("case[%d]: expected failure", i)
|
||||
}
|
||||
// Even in case of misformat, return all the text,
|
||||
// so that the user's work is not lost.
|
||||
if !equalMungeLines(out, in) {
|
||||
t.Errorf("case[%d]: expected munged text to be identical to input text", i)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func equalMungeLines(a, b mungeLines) bool {
|
||||
if len(a) != len(b) {
|
||||
return false
|
||||
}
|
||||
for i := range a {
|
||||
if a[i] != b[i] {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user