|
|
|
@ -77,11 +77,15 @@ def fix_case(name):
|
|
|
|
|
|
|
|
|
|
def replace_line(existing_line, new_line):
|
|
|
|
|
"""Replaces lines in /etc/locale.gen"""
|
|
|
|
|
try:
|
|
|
|
|
f = open("/etc/locale.gen", "r")
|
|
|
|
|
lines = [line.replace(existing_line, new_line) for line in f]
|
|
|
|
|
finally:
|
|
|
|
|
f.close()
|
|
|
|
|
try:
|
|
|
|
|
f = open("/etc/locale.gen", "w")
|
|
|
|
|
f.write("".join(lines))
|
|
|
|
|
finally:
|
|
|
|
|
f.close()
|
|
|
|
|
|
|
|
|
|
def set_locale(name, enabled=True):
|
|
|
|
@ -91,11 +95,15 @@ def set_locale(name, enabled=True):
|
|
|
|
|
new_string = '%s \g<charset>' % (name)
|
|
|
|
|
else:
|
|
|
|
|
new_string = '# %s \g<charset>' % (name)
|
|
|
|
|
try:
|
|
|
|
|
f = open("/etc/locale.gen", "r")
|
|
|
|
|
lines = [re.sub(search_string, new_string, line) for line in f]
|
|
|
|
|
finally:
|
|
|
|
|
f.close()
|
|
|
|
|
try:
|
|
|
|
|
f = open("/etc/locale.gen", "w")
|
|
|
|
|
f.write("".join(lines))
|
|
|
|
|
finally:
|
|
|
|
|
f.close()
|
|
|
|
|
|
|
|
|
|
def apply_change(targetState, name):
|
|
|
|
@ -129,14 +137,18 @@ def apply_change_ubuntu(targetState, name):
|
|
|
|
|
localeGenExitValue = call(["locale-gen", name])
|
|
|
|
|
else:
|
|
|
|
|
# Delete locale involves discarding the locale from /var/lib/locales/supported.d/local and regenerating all locales.
|
|
|
|
|
try:
|
|
|
|
|
f = open("/var/lib/locales/supported.d/local", "r")
|
|
|
|
|
content = f.readlines()
|
|
|
|
|
finally:
|
|
|
|
|
f.close()
|
|
|
|
|
try:
|
|
|
|
|
f = open("/var/lib/locales/supported.d/local", "w")
|
|
|
|
|
for line in content:
|
|
|
|
|
locale, charset = line.split(' ')
|
|
|
|
|
if locale != name:
|
|
|
|
|
f.write(line)
|
|
|
|
|
finally:
|
|
|
|
|
f.close()
|
|
|
|
|
# Purge locales and regenerate.
|
|
|
|
|
# Please provide a patch if you know how to avoid regenerating the locales to keep!
|
|
|
|
|