mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-24 13:50:22 -07:00
Bugfix to lineinfile to properly handle files with no newline at EOF when using insertafter=EOF.
Looks like #6881 is also affected by this bug. Currently when using lineinfile insertafter=EOF for a file that has no newline then the added line is not prefixed with a newline. As a concrete example, ubuntu distro default /etc/ssh/sshd_config has no newline so lineinfile module cannot be used to add a new line to the end of the file.
This commit is contained in:
parent
aaa16acdf1
commit
1caf9be109
4 changed files with 57 additions and 2 deletions
|
@ -0,0 +1,2 @@
|
|||
This is line 1
|
||||
This is line 2
|
|
@ -209,3 +209,50 @@
|
|||
that:
|
||||
- "result.stat.md5 == 'fef1d487711facfd7aa2c87d788c19d9'"
|
||||
|
||||
# Test EOF in cases where file has no newline at EOF
|
||||
- name: testnoeof deploy the file for lineinfile
|
||||
copy: src=testnoeof.txt dest={{output_dir}}/testnoeof.txt
|
||||
register: result
|
||||
|
||||
- name: testnoeof insert a line at the end of the file
|
||||
lineinfile: dest={{output_dir}}/testnoeof.txt state=present line="New line at the end" insertafter="EOF"
|
||||
register: result
|
||||
|
||||
- name: testempty assert that the line was inserted at the end of the file
|
||||
assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "result.msg == 'line added'"
|
||||
|
||||
- name: testnoeof stat the no newline EOF test after the insert at the end
|
||||
stat: path={{output_dir}}/testnoeof.txt
|
||||
register: result
|
||||
|
||||
- name: testnoeof assert test md5 matches after the insert at the end
|
||||
assert:
|
||||
that:
|
||||
- "result.stat.md5 == 'f75c9d51f45afd7295000e63ce655220'"
|
||||
|
||||
# Test EOF with empty file to make sure no unneccessary newline is added
|
||||
- name: testempty deploy the testempty file for lineinfile
|
||||
copy: src=testempty.txt dest={{output_dir}}/testempty.txt
|
||||
register: result
|
||||
|
||||
- name: testempty insert a line at the end of the file
|
||||
lineinfile: dest={{output_dir}}/testempty.txt state=present line="New line at the end" insertafter="EOF"
|
||||
register: result
|
||||
|
||||
- name: testempty assert that the line was inserted at the end of the file
|
||||
assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "result.msg == 'line added'"
|
||||
|
||||
- name: testempty stat the test after the insert at the end
|
||||
stat: path={{output_dir}}/testempty.txt
|
||||
register: result
|
||||
|
||||
- name: testempty assert test md5 matches after the insert at the end
|
||||
assert:
|
||||
that:
|
||||
- "result.stat.md5 == '357dcbee8dfb4436f63bab00a235c45a'"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue