Skip to content

Commit

Permalink
Merge pull request #24987 from AhmedMoalla/fix-comment-char-in-quadle…
Browse files Browse the repository at this point in the history
…t-unit-file

add support to ; for comments in unit files as per systemd documentation
  • Loading branch information
openshift-merge-bot[bot] authored Jan 13, 2025
2 parents 1194557 + 75b4a1b commit 9f1fee2
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 1 deletion.
2 changes: 1 addition & 1 deletion pkg/systemd/parser/unitfile.go
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ func (f *UnitFile) Dup() *UnitFile {
}

func lineIsComment(line string) bool {
return len(line) == 0 || line[0] == '#' || line[0] == ':'
return len(line) == 0 || line[0] == '#' || line[0] == ';'
}

func lineIsGroup(line string) bool {
Expand Down
27 changes: 27 additions & 0 deletions pkg/systemd/parser/unitfile_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,33 @@ func TestUnitDropinPaths_Search(t *testing.T) {
}
}

func TestCommentsIgnored(t *testing.T) {
unitWithComments := `[Container]
# comment
Name=my-container
; another comment
`
f := NewUnitFile()
if e := f.Parse(unitWithComments); e != nil {
panic(e)
}

groups := f.ListGroups()
assert.Len(t, groups, 1)
assert.Equal(t, "Container", groups[0])

comments := make([]string, 0, 2)
for _, line := range f.groups[0].lines {
if line.isComment {
comments = append(comments, line.value)
}
}

assert.Len(t, comments, 2)
assert.Equal(t, "# comment", comments[0])
assert.Equal(t, "; another comment", comments[1])
}

func FuzzParser(f *testing.F) {
for _, sample := range samples {
f.Add([]byte(sample))
Expand Down
3 changes: 3 additions & 0 deletions test/e2e/quadlet/comment-with-continuation.container
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,14 @@ After=network-online.target
[Container]
# Image=localhost/otherimagename:latest
Image=localhost/imagename:latest
; Image=localhost/image:latest
ContainerName=greatName
; ContainerName=otherName
# HostName=my-hostname
Label=io.containers.autoupdate=registry
Environment=PUID=1000 PGID=100 SEED_RATIO=1.3 TZ=Europe/Prague
Volume=./.config:/config
Volume=./downloads:/downloads
# -v /path/to/watch/folder:/watch \
; -v /other/path/to/watch/folder:/watch \
PublishPort=9091:9091

0 comments on commit 9f1fee2

Please sign in to comment.