summaryrefslogtreecommitdiffstats
path: root/compssort.py
diff options
context:
space:
mode:
authorChris Lumens <clumens@redhat.com>2008-08-04 10:41:54 -0400
committerChris Lumens <clumens@redhat.com>2008-08-04 15:48:01 -0400
commit924b8fb1283e8c661ccebf2b909bbeff932bbf7b (patch)
tree594d8fef4ab50b66c9cd0a298e19f1c8a5b42751 /compssort.py
parent8ad14d48e3b6fe2e259087c6d653382c88fb1a06 (diff)
downloadanaconda-924b8fb1283e8c661ccebf2b909bbeff932bbf7b.tar.gz
anaconda-924b8fb1283e8c661ccebf2b909bbeff932bbf7b.tar.xz
anaconda-924b8fb1283e8c661ccebf2b909bbeff932bbf7b.zip
Break a few functions out of yuminstall.py into their own file.
This is required because keeping them in yuminstall.py means that system-config-kickstart, which imports GroupSelector, ends up pulling in all of yuminstall. And we can't do that as non-root because we end up trying to import the pyblock stuff as well.
Diffstat (limited to 'compssort.py')
-rw-r--r--compssort.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/compssort.py b/compssort.py
new file mode 100644
index 000000000..3ad97959f
--- /dev/null
+++ b/compssort.py
@@ -0,0 +1,69 @@
+#
+# compssort.py
+#
+# Copyright (C) 2005, 2006, 2007 Red Hat, Inc. All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# 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 <http://www.gnu.org/licenses/>.
+#
+
+import os
+
+import gettext
+_ = lambda x: gettext.ldgettext("anaconda", x)
+
+def _getDefaultLangs():
+ languages = []
+ for envar in ('LANGUAGE', 'LC_ALL', 'LC_MESSAGES', 'LANG'):
+ val = os.environ.get(envar)
+ if val:
+ languages = val.split(':')
+ break
+ if 'C' not in languages:
+ languages.append('C')
+
+ # now normalize and expand the languages
+ nelangs = []
+ for lang in languages:
+ for nelang in gettext._expand_lang(lang):
+ if nelang not in nelangs:
+ nelangs.append(nelang)
+ return nelangs
+
+# kind of lame caching of translations so we don't always have
+# to do all the looping
+strs = {}
+def xmltrans(base, thedict):
+ if strs.has_key(base):
+ return strs[base]
+
+ langs = _getDefaultLangs()
+ for l in langs:
+ if thedict.has_key(l):
+ strs[base] = thedict[l]
+ return strs[base]
+ strs[base] = base
+ return base
+
+def ui_comps_sort(one, two):
+ if one.display_order > two.display_order:
+ return 1
+ elif one.display_order < two.display_order:
+ return -1
+ elif xmltrans(one.name, one.translated_name) > \
+ xmltrans(two.name, two.translated_name):
+ return 1
+ elif xmltrans(one.name, one.translated_name) < \
+ xmltrans(two.name, two.translated_name):
+ return -1
+ return 0