Quadlet - fix trailing whitespaces handling

Remove all trailing white spaces from all lines before the line by line
processing
Add test
Exclude the unit file used for the test from whitespace check

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
This commit is contained in:
Ygal Blum
2023-12-31 11:53:53 +02:00
parent 7dc7cbfd9b
commit 70a53cb76a
4 changed files with 22 additions and 1 deletions

View File

@ -12,7 +12,7 @@ repos:
- id: end-of-file-fixer
exclude: test/buildah-bud/buildah-tests.diff
- id: trailing-whitespace
exclude: test/buildah-bud/buildah-tests.diff|test/e2e/quadlet/remap-keep-id2.container
exclude: test/buildah-bud/buildah-tests.diff|test/e2e/quadlet/remap-keep-id2.container|test/e2e/quadlet/line-continuation-whitespace.container
- id: mixed-line-ending
- id: check-byte-order-marker
- id: check-executables-have-shebangs

View File

@ -378,12 +378,23 @@ func nextLine(data string, afterPos int) (string, string) {
return data, ""
}
func trimSpacesFromLines(data string) string {
lines := strings.Split(data, "\n")
for i, line := range lines {
lines[i] = strings.TrimSpace(line)
}
return strings.Join(lines, "\n")
}
// Parse an already loaded unit file (in the form of a string)
func (f *UnitFile) Parse(data string) error {
p := &UnitFileParser{
file: f,
lineNr: 1,
}
data = trimSpacesFromLines(data)
for len(data) > 0 {
origdata := data
nLines := 1

View File

@ -0,0 +1,9 @@
## assert-podman-final-args localhost/imagename "/some/binary file" "--arg1" "arg 2"
## assert-podman-args "--publish" "80:80"
[Container]
Image=localhost/imagename
# Keep whitespace at the end of the following line
Exec="/some/binary file" --arg1 \
"arg 2"
PublishPort=80:80

View File

@ -776,6 +776,7 @@ BOGUS=foo
Entry("install.container", "install.container", 0, ""),
Entry("ip.container", "ip.container", 0, ""),
Entry("label.container", "label.container", 0, ""),
Entry("line-continuation-whitespace.container", "line-continuation-whitespace.container", 0, ""),
Entry("logdriver.container", "logdriver.container", 0, ""),
Entry("mask.container", "mask.container", 0, ""),
Entry("mount.container", "mount.container", 0, ""),