Cleanup the logs stuff a bit.

This commit is contained in:
Marco Pesenti Gritti
2007-10-09 21:18:54 +02:00
parent b44a2916ba
commit 46d128c85a
6 changed files with 75 additions and 10 deletions
+2 -1
View File
@@ -3,7 +3,8 @@ SUBDIRS = hardware model view intro
bin_SCRIPTS = sugar-shell
sugardir = $(pkgdatadir)/shell
sugar_PYTHON = \
sugar_PYTHON = \
logsmanager.py \
shellservice.py
confdir = $(pkgdatadir)/shell
+54
View File
@@ -0,0 +1,54 @@
# Copyright (C) 2007 Red Hat, Inc.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library 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
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
import os
import time
from sugar import env
_MAX_BACKUP_DIRS = 3
def setup():
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)
+6 -1
View File
@@ -19,6 +19,7 @@ import sys
import os
from ConfigParser import ConfigParser
import gettext
import signal
import pygtk
pygtk.require('2.0')
@@ -37,6 +38,7 @@ from model.shellmodel import ShellModel
from shellservice import ShellService
from hardware import hardwaremanager
from intro import intro
import logsmanager
def _start_matchbox():
cmd = ['matchbox-window-manager']
@@ -94,7 +96,7 @@ def _shell_started_cb():
def main():
gobject.idle_add(_shell_started_cb)
logger.setup_logs_dir()
logsmanager.setup()
logger.start('shell')
_save_session_info()
@@ -110,6 +112,9 @@ def main():
win.show_all()
gtk.main()
# FIXME avoid zombie activity processes
signal.signal(signal.SIGCHLD, signal.SIG_IGN)
if os.environ.has_key("SUGAR_TP_DEBUG"):
# Allow the user time to start up telepathy connection managers
# using the Sugar DBus bus address