def test_get_locale(self):
        locale_param = r'^LANG='
        locale_regex = r'{}\(.*\)$'.format(locale_param)
        locale_cmd = r'locale | grep "{locale_param}" | sed "s/{regex}/\1/g"'.format(locale_param=locale_param, regex=locale_regex)

        locale_out, _, _ = utils.run_cmd(locale_cmd)
        locale_test = locale_out.rstrip()

        locale_setting = locale.get_locale()

        self.assertEqual(locale_setting, locale_test)
Beispiel #2
0
    def test_get_locale(self):
        locale_param = r'^LANG='
        locale_regex = r'{}\(.*\)$'.format(locale_param)
        locale_cmd = r'locale | grep "{locale_param}" | sed "s/{regex}/\1/g"'.format(
            locale_param=locale_param, regex=locale_regex)

        locale_out, _, _ = utils.run_cmd(locale_cmd)
        locale_test = locale_out.rstrip()

        locale_setting = locale.get_locale()

        self.assertEqual(locale_setting, locale_test)
Beispiel #3
0
    def _load_saved_settings(self):
        locale_setting = strip_encoding_from_locale(get_locale())
        locale_setting = get_setting('Locale')
        lang_code, region_code = Locales.get_codes_from_locale_code(
            locale_setting)

        lang = Locales.lang_code_to_lang(lang_code)
        region = Locales.region_code_to_region(region_code)

        selected_index = self._language_combo.get_items().index(lang)
        self._language_combo.set_selected_item_index(selected_index)

        self._on_language_changed(self._language_combo)

        selected_index = self._region_combo.get_items().index(region)
        self._region_combo.set_selected_item_index(selected_index)
Beispiel #4
0
    def _load_saved_settings(self):
        locale_setting = strip_encoding_from_locale(get_locale())
        locale_setting = get_setting('Locale')
        lang_code, region_code = Locales.get_codes_from_locale_code(
            locale_setting)

        lang = Locales.lang_code_to_lang(lang_code)
        region = Locales.region_code_to_region(region_code)

        selected_index = self._language_combo.get_items().index(lang)
        self._language_combo.set_selected_item_index(selected_index)

        self._on_language_changed(self._language_combo)

        selected_index = self._region_combo.get_items().index(region)
        self._region_combo.set_selected_item_index(selected_index)
Beispiel #5
0
def get_applications(parse_cmds=True):
    """ Get all the applications installed on the system.

        :param parse_cmds:
        :type parse_cmds: bool

        :returns: A dict with all apps.
        :rtype: dict
    """

    loc = os.path.expanduser(_SYSTEM_APPLICATIONS_LOC)
    blacklist = [
        "idle3.desktop", "idle.desktop", "idle-python2.7.desktop",
        "idle-python3.2.desktop", "xarchiver.desktop",
        "make-minecraft.desktop", "make-music.desktop", "make-pong.desktop",
        "make-snake.desktop", "kano-video.desktop", "lxsession-edit.desktop",
        "lxrandr.desktop", "lxinput.desktop", "obconf.desktop",
        "openbox.desktop", "libfm-pref-apps.desktop", "lxappearance.desktop",
        "htop.desktop", "pcmanfm-desktop-pref.desktop", "video-cli.desktop",
        "lxsession-default-apps.desktop", "pcmanfm.desktop", "help.desktop",
        "rxvt-unicode.desktop", "org.gnome.gedit.desktop",
        "chromium-browser.desktop", "openjdk-7-policytool.desktop"
    ]

    def _collect_apps(application_dir):
        if not os.path.exists(application_dir):
            return {}

        _applications = {}

        for f in os.listdir(os.path.join(application_dir, '')):
            fp = os.path.join(application_dir, f)

            if os.path.isdir(fp):
                continue

            if f[-4:] == ".app":
                data = load_from_app_file(fp, parse_cmds)
                if data is not None:
                    if not is_app_installed(data):
                        data["_install"] = True

                    _applications[f] = data
                    if "overrides" in data:
                        blacklist.extend(data["overrides"])

            elif f[-8:] == ".desktop" and f[0:5] != "auto_":
                data = _load_from_dentry(fp)
                if data is not None:
                    _applications[f] = data

        return _applications

    apps = _collect_apps(loc)

    # get localised apps
    current_locale = ensure_utf_locale(get_locale())

    if current_locale and get_current_translation():
        locale_code = current_locale.split('.')[0]
        locale_path = os.path.join(
            _SYSTEM_APPLICATIONS_LOC, "locale", locale_code
        )

        localised_apps = _collect_apps(locale_path)
        apps.update(localised_apps)

    filtered_apps = [
        app for f, app in apps.iteritems()
        if os.path.basename(app['origin']) not in blacklist
    ]

    return sorted(filtered_apps, key=lambda a: a["title"])
Beispiel #6
0
def get_applications(parse_cmds=True, all_locales=False, current_locale=True):
    """ Get all the applications installed on the system.

        :param parse_cmds:
        :type parse_cmds: bool

        :returns: A dict with all apps.
        :rtype: dict
    """

    loc = os.path.expanduser(_SYSTEM_APPLICATIONS_LOC)
    blacklist = [
        "idle3.desktop", "idle.desktop", "idle-python2.7.desktop",
        "idle-python3.2.desktop", "xarchiver.desktop",
        "make-minecraft.desktop", "make-music.desktop", "make-pong.desktop",
        "make-snake.desktop", "kano-video.desktop", "lxsession-edit.desktop",
        "lxrandr.desktop", "lxinput.desktop", "obconf.desktop",
        "openbox.desktop", "libfm-pref-apps.desktop", "lxappearance.desktop",
        "htop.desktop", "pcmanfm-desktop-pref.desktop", "video-cli.desktop",
        "lxsession-default-apps.desktop", "pcmanfm.desktop", "help.desktop",
        "rxvt-unicode.desktop", "org.gnome.gedit.desktop",
        "chromium-browser.desktop", "openjdk-7-policytool.desktop"
    ]

    def _collect_apps(application_dir, skip_checks=False):
        if not os.path.exists(application_dir):
            return {}

        _applications = {}

        for f in os.listdir(os.path.join(application_dir, '')):
            fp = os.path.join(application_dir, f)

            if os.path.isdir(fp):
                continue

            if f[-4:] == ".app":
                data = load_from_app_file(fp, not skip_checks and parse_cmds)
                if data is not None:
                    if not skip_checks and not is_app_installed(data):
                        data["_install"] = True

                    _applications[f] = data
                    if "overrides" in data:
                        blacklist.extend(data["overrides"])

            elif f[-8:] == ".desktop" and f[0:5] != "auto_":
                data = _load_from_dentry(fp)
                if data is not None:
                    _applications[f] = data

        return _applications

    locales = [
        (DEFAULT_LOCALE, _SYSTEM_APPLICATIONS_LOC)
    ]

    locale_code = None

    if all_locales:
        locales += [
            (locale, get_locale_dir(locale))
            for locale in os.listdir(APP_LOCALE_DIR)
        ]
    elif current_locale:
        current_locale = ensure_utf_locale(get_locale())
        if current_locale and get_current_translation():
            locale_code = current_locale.split('.')[0]
            locales.append(
                (locale_code, get_locale_dir(locale_code))
            )

    apps = {}

    for locale, locale_dir in locales:
        locale_apps = _collect_apps(
            locale_dir, skip_checks=locale != DEFAULT_LOCALE
        )

        for app_name, app_data in locale_apps.iteritems():
            if app_name not in apps:
                apps[app_name] = {}

            if locale == DEFAULT_LOCALE:
                apps[app_name].update(app_data)
            else:
                if LOCALE_KEY not in apps[app_name]:
                    apps[app_name][LOCALE_KEY] = {}

                apps[app_name][LOCALE_KEY][locale] = app_data

    if locale_code:
        apps = flatten_locale(apps, locale_code)
        filtered_apps = [
            app for f, app in apps.iteritems()
            if os.path.basename(app['origin']) not in blacklist
        ]

        return sorted(filtered_apps, key=lambda a: a["title"])

    return apps