From 57c928916ca7cdacd728834a9b59ecc33b55339e Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Fri, 09 Mar 2007 13:57:54 +0000 Subject: Refactor sugar.env and paths --- (limited to 'sugar') diff --git a/sugar/activity/bundle.py b/sugar/activity/bundle.py index 283204f..8980a11 100644 --- a/sugar/activity/bundle.py +++ b/sugar/activity/bundle.py @@ -44,8 +44,7 @@ class Bundle: if cp.has_option(section, 'class'): self._class = cp.get(section, 'class') self._exec = '%s %s --bundle-path="%s"' % ( - os.path.join(env.get_shell_bin_dir(), _PYTHON_FACTORY), - self._class, self.get_path()) + env.get_bin_path(_PYTHON_FACTORY), self._class, self.get_path()) elif cp.has_option(section, 'exec'): self._class = None self._exec = cp.get(section, 'exec') diff --git a/sugar/activity/bundlebuilder.py b/sugar/activity/bundlebuilder.py index c223bfa..120e7b8 100644 --- a/sugar/activity/bundlebuilder.py +++ b/sugar/activity/bundlebuilder.py @@ -93,7 +93,7 @@ def _get_install_dir(prefix): return os.path.join(prefix, 'share/activities') def _get_bundle_path(): - return os.path.join(env.get_user_activities_dir(), _get_bundle_dir()) + return os.path.join(env.get_user_activities_path(), _get_bundle_dir()) def _get_package_name(): bundle = Bundle(_get_source_path()) @@ -120,7 +120,7 @@ setup.py help - print this message \n\ ' def cmd_dev(): - bundle_path = os.path.join(env.get_user_activities_dir(), _get_bundle_dir()) + bundle_path = os.path.join(env.get_user_activities_path(), _get_bundle_dir()) try: os.symlink(_get_source_path(), bundle_path) except OSError: diff --git a/sugar/activity/bundleregistry.py b/sugar/activity/bundleregistry.py index 08f543f..2ad68ed 100644 --- a/sugar/activity/bundleregistry.py +++ b/sugar/activity/bundleregistry.py @@ -1,14 +1,26 @@ import os from ConfigParser import ConfigParser + import gobject from sugar.activity.bundle import Bundle from sugar import env from sugar import util +# http://standards.freedesktop.org/basedir-spec/basedir-spec-0.6.html +def _get_data_dirs(): + if os.environ.has_key('XDG_DATA_DIRS'): + return os.environ['XDG_DATA_DIRS'].split(':') + else: + return [ '/usr/local/share/', '/usr/share/' ] + class _ServiceManager(object): def __init__(self): - self._path = env.get_user_service_dir() + service_dir = os.path.expanduser('~/.local/share/dbus-1/services') + if not os.path.isdir(service_dir): + os.makedirs(service_dir) + + self._path = service_dir def add(self, bundle): util.write_service(bundle.get_service_name(), @@ -74,8 +86,8 @@ def get_registry(): _bundle_registry = BundleRegistry() -for path in env.get_data_dirs(): +for path in _get_data_dirs(): bundles_path = os.path.join(path, 'activities') _bundle_registry.add_search_path(bundles_path) -_bundle_registry.add_search_path(env.get_user_activities_dir()) +_bundle_registry.add_search_path(env.get_user_activities_path()) diff --git a/sugar/env.py b/sugar/env.py index 7d6cc7c..d32c1cb 100644 --- a/sugar/env.py +++ b/sugar/env.py @@ -24,6 +24,17 @@ try: except ImportError: from sugar.__installed__ import * +def _get_prefix_path(base, path=None): + if os.environ.has_key('SUGAR_PREFIX'): + prefix = os.environ['SUGAR_PREFIX'] + else: + prefix = '/usr' + + if path: + return os.path.join(prefix, base, path) + else: + return os.path.join(prefix, base) + def is_emulator(): if os.environ.has_key('SUGAR_EMULATOR'): if os.environ['SUGAR_EMULATOR'] == 'yes': @@ -45,28 +56,20 @@ def get_profile_path(): return path -def get_data_dir(): - return sugar_data_dir - -def get_shell_bin_dir(): - return sugar_shell_bin_dir - -# http://standards.freedesktop.org/basedir-spec/basedir-spec-0.6.html -def get_data_dirs(): - if os.environ.has_key('XDG_DATA_DIRS'): - return os.environ['XDG_DATA_DIRS'].split(':') - else: - return [ '/usr/local/share/', '/usr/share/' ] - -def get_user_service_dir(): - service_dir = os.path.expanduser('~/.local/share/dbus-1/services') - if not os.path.isdir(service_dir): - os.makedirs(service_dir) - return service_dir - -def get_user_activities_dir(): +def get_user_activities_path(): path = os.path.expanduser('~/Activities') if not os.path.isdir(path): os.mkdir(path) return path +def get_bin_path(path=None): + return _get_prefix_path('bin', path) + +def get_service_path(name): + return _get_prefix_path('share/sugar/services', name) + +def get_shell_path(path=None): + return _get_prefix_path('share/sugar/shell', path) + +def get_emulator_path(path=None): + return _get_prefix_path('share/sugar/emulator', path) diff --git a/sugar/graphics/canvasicon.py b/sugar/graphics/canvasicon.py index 6f7a0a9..a805087 100644 --- a/sugar/graphics/canvasicon.py +++ b/sugar/graphics/canvasicon.py @@ -326,7 +326,7 @@ class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem): return height def do_button_press_event(self, event): - item.emit_activated() + self.emit_activated() return True def get_popup(self): -- cgit v0.9.1