From 4a0b1ba4d428c623d14bae7f0db85c80abb0da0a Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 23 Sep 2007 14:46:22 +0200 Subject: Adding casper 1.59+debian-1. --- caspermon/GNOME_PythonAppletCasper.server | 30 +++++++++++++ caspermon/caspermon-applet | 75 +++++++++++++++++++++++++++++++ caspermon/caspermond | 9 ++++ 3 files changed, 114 insertions(+) create mode 100644 caspermon/GNOME_PythonAppletCasper.server create mode 100755 caspermon/caspermon-applet create mode 100644 caspermon/caspermond (limited to 'caspermon') diff --git a/caspermon/GNOME_PythonAppletCasper.server b/caspermon/GNOME_PythonAppletCasper.server new file mode 100644 index 0000000..34caa04 --- /dev/null +++ b/caspermon/GNOME_PythonAppletCasper.server @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/caspermon/caspermon-applet b/caspermon/caspermon-applet new file mode 100755 index 0000000..773e0a4 --- /dev/null +++ b/caspermon/caspermon-applet @@ -0,0 +1,75 @@ +#!/usr/bin/python + +import pygtk +pygtk.require('2.0') + +import gtk +import gnome.applet +import subprocess +import os + +# A simple applet to display the utilization of the snapshot device +# during a casper session +# +# Matt Zimmerman + +# TODO: +# - tooltip with details +# - flash at threshold + +class CasperApplet: + def __init__(self, applet, iid): + self.timeout_interval = 1000 + self.device = 'casper-snapshot' + self.capacity = [0,0] + self.datafile = '/var/lib/casper/snapshot-status' + + # initializate the gnome internals + gnome.init("casper", "0.1") + + self.applet = applet + + self.tooltips = gtk.Tooltips() + self.hbox = gtk.HBox() + applet.add(self.hbox) + + # add the second button event for the popup menu and the enter mouse event to change the tooltip value + self.ev_box = gtk.EventBox() + #self.ev_box.connect("button-press-event",self.button_press) + self.ev_box.connect("enter-notify-event", self.update_info) + self.hbox.add(self.ev_box) + + self.prog = gtk.ProgressBar() + self.ev_box.add(self.prog) + + self.update_info() + + gtk.timeout_add(self.timeout_interval,self.update_info, self) + + applet.connect("destroy",self.cleanup) + applet.show_all() + + def update_info(self, event=None): + self.capacity = self.read_info() + self.prog.set_fraction(float(self.capacity[0]) / self.capacity[1]) + self.prog.update() + + def read_info(self): + fields = open(self.datafile).readline().split() + if fields[2] != 'snapshot': + return None + + return map(int,fields[3].split('/', 1)) + + def cleanup(self): + # what goes here? + pass + +def casper_factory(applet, iid): + CasperApplet(applet, iid) + + return gtk.TRUE + +gnome.applet.bonobo_factory("OAFIID:GNOME_PythonAppletCasper_Factory", + gnome.applet.Applet.__gtype__, + "casper", "0", casper_factory) diff --git a/caspermon/caspermond b/caspermon/caspermond new file mode 100644 index 0000000..e126447 --- /dev/null +++ b/caspermon/caspermond @@ -0,0 +1,9 @@ +#!/bin/sh + +STATEFILE=/var/run/caspermond/status.casper-snapshot + +while true; do + dmsetup status /dev/mapper/casper-snapshot > $STATEFILE.new + mv $STATEFILE.new $STATEFILE + sleep 60 +done -- cgit v1.2.3