Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-10-16 13:24:23 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-10-16 13:24:23 (GMT)
commit07dd398e2245909c0111edfe845dd5c66559d47f (patch)
tree76c0f1b42386cd49b26f033843af218c838eeb2e /shell
parent096d5c523813b9716ef10d7f76e3f2c02717ae37 (diff)
Hack a simple log viewer.
Diffstat (limited to 'shell')
-rwxr-xr-xshell/sugar-log-viewer63
1 files changed, 63 insertions, 0 deletions
diff --git a/shell/sugar-log-viewer b/shell/sugar-log-viewer
new file mode 100755
index 0000000..0a5eb55
--- /dev/null
+++ b/shell/sugar-log-viewer
@@ -0,0 +1,63 @@
+#!/usr/bin/python
+
+# Copyright (C) 2006, 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 pygtk
+pygtk.require('2.0')
+import gtk
+import gobject
+
+from sugar import env
+
+class LogBuffer(gtk.TextBuffer):
+ def __init__(self, logfile):
+ gtk.TextBuffer.__init__(self)
+
+ self._logfile = logfile
+ self._pos = 0
+
+ gobject.timeout_add(1000, self._update)
+
+ def _update(self):
+ f = open(self._logfile, 'r')
+
+ f.seek(self._pos)
+ self.insert(self.get_end_iter(), f.read())
+ self._pos = f.tell()
+
+ f.close()
+
+ return True
+
+window = gtk.Window()
+scrolled = gtk.ScrolledWindow()
+scrolled.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+
+log_file = os.path.join(env.get_profile_path(), 'sugar.log')
+textview = gtk.TextView(LogBuffer(log_file))
+textview.set_wrap_mode(gtk.WRAP_WORD)
+textview.set_editable(False)
+scrolled.add(textview)
+textview.show()
+
+window.add(scrolled)
+scrolled.show()
+window.show()
+
+gtk.main()