1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

snap: Only treat --- as an info separator when it's preceded by newline (#7046)

* Only treat `---` as an info separator when it's preceded by newline

The code for splitting the output of `snap info` for multiple snaps
can't assume that `---` separates snaps any time it appears in the
output; it needs to treat that as the separator only when it's at the
start of a line. Otherwise it breaks if any snap uses `---` in its
description text, which, e.g., the `bw` snap does as of the date of
this commit.

Fixes #7045.

* Add changelog fragment

* Add a comment explaining why \n is necessary before ---

* Update changelogs/fragments/7046-snap-newline-before-separator.yml

Co-authored-by: Felix Fontein <felix@fontein.de>

---------

Co-authored-by: Jonathan Kamens <jik@jik5.kamens.us>
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
Jonathan Kamens 2023-08-04 01:40:40 -04:00 committed by GitHub
parent d17ec06d2a
commit c7fa11d576
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 1 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- snap - fix crash when multiple snaps are specified and one has ``---`` in its description (https://github.com/ansible-collections/community.general/pull/7046).

View file

@ -303,7 +303,10 @@ class Snap(StateModuleHelper):
return [name] return [name]
def process_many(rc, out, err): def process_many(rc, out, err):
outputs = out.split("---") # This needs to be "\n---" instead of just "---" because otherwise
# if a snap uses "---" in its description then that will incorrectly
# be interpreted as a separator between snaps in the output.
outputs = out.split("\n---")
res = [] res = []
for sout in outputs: for sout in outputs:
res.extend(process_one(rc, sout, "")) res.extend(process_one(rc, sout, ""))