diff options
author | Scott Moser <smoser@ubuntu.com> | 2011-10-30 17:23:39 -0400 |
---|---|---|
committer | Scott Moser <smoser@ubuntu.com> | 2011-10-30 17:23:39 -0400 |
commit | f616a9acc581d6ac2fb4ebcaa49570cc0be744ce (patch) | |
tree | 7752949d3a319deb3d8cd335729e69ef29bb9f8d | |
parent | 25824d2007e062f32a7bf3c502eaf9b8f2bf4c15 (diff) | |
download | vyos-cloud-init-f616a9acc581d6ac2fb4ebcaa49570cc0be744ce.tar.gz vyos-cloud-init-f616a9acc581d6ac2fb4ebcaa49570cc0be744ce.zip |
Make locale file location configurable
fedora's analog to /etc/default/locale is /etc/sysconfig/i18n .
This makes locale_configfile configurable and chooses between
/usr/sbin/locale-gen (ubuntu/debian) and
/usr/sbin/update-localeo (fedora)
based on availability to generate locales.
taken from
git://pkgs.fedoraproject.org/cloud-init.git
commit 87f33190f43d2b26cced4597e7298835024466c2
Author: Garrett Holmstrom <gholms@fedoraproject.org>
Patch4: cloud-init-0.6.2-localefile.patch
-rw-r--r-- | cloudinit/CloudConfig/cc_locale.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/cloudinit/CloudConfig/cc_locale.py b/cloudinit/CloudConfig/cc_locale.py index b9a221ca..8542f641 100644 --- a/cloudinit/CloudConfig/cc_locale.py +++ b/cloudinit/CloudConfig/cc_locale.py @@ -16,15 +16,17 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. import cloudinit.util as util +import os.path import subprocess import traceback -def apply_locale(locale): - subprocess.Popen(['locale-gen', locale]).communicate() - subprocess.Popen(['update-locale', locale]).communicate() +def apply_locale(locale, cfgfile): + if os.path.exists('/usr/sbin/locale-gen'): + subprocess.Popen(['locale-gen', locale]).communicate() + if os.path.exists('/usr/sbin/update-locale'): + subprocess.Popen(['update-locale', locale]).communicate() - util.render_to_file('default-locale', '/etc/default/locale', \ - { 'locale' : locale }) + util.render_to_file('default-locale', cfgfile, { 'locale' : locale }) def handle(name,cfg,cloud,log,args): if len(args) != 0: @@ -32,12 +34,15 @@ def handle(name,cfg,cloud,log,args): else: locale = util.get_cfg_option_str(cfg,"locale",cloud.get_locale()) + locale_cfgfile = util.get_cfg_option_str(cfg, "locale_configfile", + "/etc/default/locale") + if not locale: return log.debug("setting locale to %s" % locale) try: - apply_locale(locale) + apply_locale(locale, locale_cfgfile) except Exception as e: log.debug(traceback.format_exc(e)) raise Exception("failed to apply locale %s" % locale) |