ensure all files we create end with a single newline

Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
This commit is contained in:
Steven Armstrong 2014-04-22 11:04:02 +02:00
parent 702a07b2d1
commit 8a4cc56266

View file

@ -143,6 +143,9 @@ class DirectoryDict(collections.MutableMapping):
fd.write(str(v) + '\n') fd.write(str(v) + '\n')
else: else:
fd.write(str(value)) fd.write(str(value))
# ensure file ends with a single newline
if value and value[-1] != '\n':
fd.write('\n')
except EnvironmentError as e: except EnvironmentError as e:
raise cdist.Error(str(e)) raise cdist.Error(str(e))
@ -281,7 +284,7 @@ class FileStringProperty(FileBasedProperty):
value = "" value = ""
try: try:
with open(path, "r") as fd: with open(path, "r") as fd:
value = fd.read() value = fd.read().rstrip('\n')
except EnvironmentError: except EnvironmentError:
pass pass
return value return value
@ -292,6 +295,9 @@ class FileStringProperty(FileBasedProperty):
try: try:
with open(path, "w") as fd: with open(path, "w") as fd:
fd.write(str(value)) fd.write(str(value))
# ensure file ends with a single newline
if value[-1] != '\n':
fd.write('\n')
except EnvironmentError as e: except EnvironmentError as e:
raise cdist.Error(str(e)) raise cdist.Error(str(e))
else: else: