Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpgritti@gmail.com>2008-10-22 00:30:11 (GMT)
committer Marco Pesenti Gritti <mpgritti@gmail.com>2008-10-22 00:30:11 (GMT)
commitb75ec16b134f9b0b7969a0b8f621439c97473ea8 (patch)
treea83cfa2ab10aea6aed379c7fc632ade22184dd7f
parentd59b4aa64c7f97cd94c47ab61901878b2011ee80 (diff)
A bit of refactoring to get rid of the confusing service package.
-rw-r--r--bin/sugar-session67
-rw-r--r--configure.ac1
-rw-r--r--src/jarabe/Makefile.am1
-rw-r--r--src/jarabe/controlpanel/gui.py2
-rw-r--r--src/jarabe/desktop/favoritesview.py2
-rw-r--r--src/jarabe/model/Makefile.am1
-rw-r--r--src/jarabe/model/session.py (renamed from src/jarabe/service/session.py)0
-rw-r--r--src/jarabe/service/Makefile.am6
-rw-r--r--src/jarabe/service/__init__.py42
-rw-r--r--src/jarabe/service/logsmanager.py55
-rw-r--r--src/jarabe/view/Makefile.am5
-rw-r--r--src/jarabe/view/service.py (renamed from src/jarabe/service/gui.py)0
12 files changed, 70 insertions, 112 deletions
diff --git a/bin/sugar-session b/bin/sugar-session
index eb76fda..fb78235 100644
--- a/bin/sugar-session
+++ b/bin/sugar-session
@@ -35,13 +35,72 @@ dbus.glib.threads_init()
from sugar import logger
from sugar.profile import get_profile
+from sugar import env
from jarabe.desktop.homewindow import HomeWindow
from jarabe.model import sound
from jarabe.view import launcher
from jarabe import intro
from jarabe import config
-from jarabe import service
+
+def cleanup_logs():
+ """Clean up the log directory, moving old logs into a numbered backup
+ directory. We only keep `_MAX_BACKUP_DIRS` of these backup directories
+ around; the rest are removed."""
+ logs_dir = env.get_logs_path()
+ if not os.path.isdir(logs_dir):
+ os.makedirs(logs_dir)
+
+ backup_logs = []
+ backup_dirs = []
+ for f in os.listdir(logs_dir):
+ path = os.path.join(logs_dir, f)
+ if os.path.isfile(path):
+ backup_logs.append(f)
+ elif os.path.isdir(path):
+ backup_dirs.append(path)
+
+ if len(backup_dirs) > 3:
+ backup_dirs.sort()
+ root = backup_dirs[0]
+ for f in os.listdir(root):
+ os.remove(os.path.join(root, f))
+ os.rmdir(root)
+
+ if len(backup_logs) > 0:
+ name = str(int(time.time()))
+ backup_dir = os.path.join(logs_dir, name)
+ os.mkdir(backup_dir)
+ for log in backup_logs:
+ source_path = os.path.join(logs_dir, log)
+ dest_path = os.path.join(backup_dir, log)
+ os.rename(source_path, dest_path)
+
+def start_datastore():
+ from sugar.datastore import datastore
+
+ # Mount the datastore in internal flash
+ ds_path = env.get_profile_path('datastore')
+ try:
+ datastore.mount(ds_path, [], timeout=120)
+ except Exception, e:
+ # Don't explode if there's corruption; move the data out of the way
+ # and attempt to create a store from scratch.
+ logging.error(e)
+ shutil.move(ds_path, os.path.abspath(ds_path) + str(time.time()))
+ datastore.mount(ds_path, [], timeout=120)
+
+def start_ui_service():
+ from jarabe.view.service import UIService
+
+ ui_service = UIService()
+ ui_service.start()
+
+def start_session_manager():
+ from jarabe.model.session import get_session_manager
+
+ session_manager = get_session_manager()
+ session_manager.start()
def uisetup_completed_cb():
logging.debug('STARTUP: --- uisetup_completed_cb ---')
@@ -63,7 +122,7 @@ def uisetup_delayed_cb(home_window):
home_window.get_home_box().show_software_updates_alert()
def main():
- service.start_logsmanager()
+ cleanup_logs()
logger.start('shell')
intro.check_profile()
@@ -74,7 +133,9 @@ def main():
if timezone is not '':
os.environ['TZ'] = timezone
- service.start_all()
+ start_datastore()
+ start_ui_service()
+ start_session_manager()
sound.restore()
diff --git a/configure.ac b/configure.ac
index 87c21fe..6a96900 100644
--- a/configure.ac
+++ b/configure.ac
@@ -69,7 +69,6 @@ src/jarabe/intro/Makefile
src/jarabe/journal/Makefile
src/jarabe/view/Makefile
src/jarabe/model/Makefile
-src/jarabe/service/Makefile
src/jarabe/util/Makefile
src/jarabe/util/telepathy/Makefile
po/Makefile.in
diff --git a/src/jarabe/Makefile.am b/src/jarabe/Makefile.am
index cf25785..42bf075 100644
--- a/src/jarabe/Makefile.am
+++ b/src/jarabe/Makefile.am
@@ -6,7 +6,6 @@ SUBDIRS = \
model \
view \
intro \
- service \
util
sugardir = $(pythondir)/jarabe
diff --git a/src/jarabe/controlpanel/gui.py b/src/jarabe/controlpanel/gui.py
index 8b63b78..2f8da51 100644
--- a/src/jarabe/controlpanel/gui.py
+++ b/src/jarabe/controlpanel/gui.py
@@ -27,7 +27,7 @@ from sugar.graphics.icon import Icon
from sugar.graphics import style
from sugar.graphics.alert import Alert
-from jarabe.service.session import get_session_manager
+from jarabe.model.session import get_session_manager
from jarabe.controlpanel.toolbar import MainToolbar
from jarabe.controlpanel.toolbar import SectionToolbar
from jarabe import config
diff --git a/src/jarabe/desktop/favoritesview.py b/src/jarabe/desktop/favoritesview.py
index 926f143..33e2a99 100644
--- a/src/jarabe/desktop/favoritesview.py
+++ b/src/jarabe/desktop/favoritesview.py
@@ -36,7 +36,7 @@ from jarabe.view.palettes import CurrentActivityPalette, ActivityPalette
from jarabe.model import shell
from jarabe.model import bundleregistry
from jarabe.controlpanel.gui import ControlPanel
-from jarabe.service.session import get_session_manager
+from jarabe.model.session import get_session_manager
from jarabe.desktop import schoolserver
from jarabe.desktop.schoolserver import RegisterError
diff --git a/src/jarabe/model/Makefile.am b/src/jarabe/model/Makefile.am
index fc5ed4c..d968602 100644
--- a/src/jarabe/model/Makefile.am
+++ b/src/jarabe/model/Makefile.am
@@ -9,5 +9,6 @@ sugar_PYTHON = \
neighborhood.py \
shell.py \
screen.py \
+ session.py \
sound.py \
volume.py
diff --git a/src/jarabe/service/session.py b/src/jarabe/model/session.py
index 8927260..8927260 100644
--- a/src/jarabe/service/session.py
+++ b/src/jarabe/model/session.py
diff --git a/src/jarabe/service/Makefile.am b/src/jarabe/service/Makefile.am
deleted file mode 100644
index 71b5593..0000000
--- a/src/jarabe/service/Makefile.am
+++ /dev/null
@@ -1,6 +0,0 @@
-sugardir = $(pythondir)/jarabe/service
-sugar_PYTHON = \
- __init__.py \
- logsmanager.py \
- session.py \
- gui.py
diff --git a/src/jarabe/service/__init__.py b/src/jarabe/service/__init__.py
deleted file mode 100644
index af44946..0000000
--- a/src/jarabe/service/__init__.py
+++ /dev/null
@@ -1,42 +0,0 @@
-import logging
-import os
-import shutil
-import time
-
-import dbus
-
-from sugar.datastore import datastore
-from sugar import env
-
-from jarabe.service.session import get_session_manager
-from jarabe.service.gui import UIService
-from jarabe.service import logsmanager
-
-def start_logsmanager():
- try:
- logsmanager.setup()
- except Exception, e:
- # logs setup is not critical; it should not prevent sugar from
- # starting if (for example) the disk is full or read-only.
- print 'Log setup failed: %s' % e
-
-def start_datastore():
- # Mount the datastore in internal flash
- ds_path = env.get_profile_path('datastore')
- try:
- datastore.mount(ds_path, [], timeout=120)
- except Exception, e:
- # Don't explode if there's corruption; move the data out of the way
- # and attempt to create a store from scratch.
- logging.error(e)
- shutil.move(ds_path, os.path.abspath(ds_path) + str(time.time()))
- datastore.mount(ds_path, [], timeout=120)
-
-def start_all():
- start_datastore()
-
- ui_service = UIService()
- ui_service.start()
-
- session_manager = get_session_manager()
- session_manager.start()
diff --git a/src/jarabe/service/logsmanager.py b/src/jarabe/service/logsmanager.py
deleted file mode 100644
index 9360211..0000000
--- a/src/jarabe/service/logsmanager.py
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright (C) 2007 Red Hat, Inc.
-#
-# 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, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-import os
-import time
-
-from sugar import env
-
-_MAX_BACKUP_DIRS = 3
-
-def setup():
- """Clean up the log directory, moving old logs into a numbered backup
- directory. We only keep `_MAX_BACKUP_DIRS` of these backup directories
- around; the rest are removed."""
- logs_dir = env.get_logs_path()
- if not os.path.isdir(logs_dir):
- os.makedirs(logs_dir)
-
- backup_logs = []
- backup_dirs = []
- for f in os.listdir(logs_dir):
- path = os.path.join(logs_dir, f)
- if os.path.isfile(path):
- backup_logs.append(f)
- elif os.path.isdir(path):
- backup_dirs.append(path)
-
- if len(backup_dirs) > _MAX_BACKUP_DIRS:
- backup_dirs.sort()
- root = backup_dirs[0]
- for f in os.listdir(root):
- os.remove(os.path.join(root, f))
- os.rmdir(root)
-
- if len(backup_logs) > 0:
- name = str(int(time.time()))
- backup_dir = os.path.join(logs_dir, name)
- os.mkdir(backup_dir)
- for log in backup_logs:
- source_path = os.path.join(logs_dir, log)
- dest_path = os.path.join(backup_dir, log)
- os.rename(source_path, dest_path)
diff --git a/src/jarabe/view/Makefile.am b/src/jarabe/view/Makefile.am
index 4554cf6..21e7a91 100644
--- a/src/jarabe/view/Makefile.am
+++ b/src/jarabe/view/Makefile.am
@@ -5,6 +5,7 @@ sugar_PYTHON = \
buddymenu.py \
keyhandler.py \
launcher.py \
+ palettes.py \
pulsingicon.py \
- tabbinghandler.py \
- palettes.py
+ service.py \
+ tabbinghandler.py
diff --git a/src/jarabe/service/gui.py b/src/jarabe/view/service.py
index a2439ce..a2439ce 100644
--- a/src/jarabe/service/gui.py
+++ b/src/jarabe/view/service.py