# vi: ts=4 expandtab # # Copyright (C) 2011 Canonical Ltd. # # Author: Scott Moser # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3, as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import cloudinit.util as util import subprocess import traceback def apply_locale(locale): subprocess.Popen(['locale-gen', locale]).communicate() subprocess.Popen(['update-locale', locale]).communicate() util.render_to_file('default-locale', '/etc/default/locale', \ { 'locale' : locale }) def handle(name,cfg,cloud,log,args): if len(args) != 0: locale = args[0] else: locale = util.get_cfg_option_str(cfg,"locale",cloud.get_locale()) if not locale: return log.debug("setting locale to %s" % locale) try: apply_locale(locale) except Exception as e: log.debug(traceback.format_exc(e)) raise Exception("failed to apply locale %s" % locale)