summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/notify.py45
-rw-r--r--plugins/notify.xml14
-rw-r--r--portato/plugins/__init__.py7
-rw-r--r--portato/plugins/notify.py22
4 files changed, 51 insertions, 37 deletions
diff --git a/plugins/notify.py b/plugins/notify.py
new file mode 100644
index 0000000..bc1b2ea
--- /dev/null
+++ b/plugins/notify.py
@@ -0,0 +1,45 @@
+# -*- coding: utf-8 -*-
+#
+# File: plugins/notify.py
+# This file is part of the Portato-Project, a graphical portage-frontend.
+#
+# Copyright (C) 2007-2008 René 'Necoro' Neumann
+# This is free software. You may redistribute copies of it under the terms of
+# the GNU General Public License version 2.
+# There is NO WARRANTY, to the extent permitted by law.
+#
+# Written by René 'Necoro' Neumann <necoro@necoro.net>
+
+import pynotify
+
+from portato import get_listener
+
+from portato.helper import warning, error, debug
+from portato.constants import APP_ICON, APP
+
+class Notify (Plugin):
+ __author__ = "René 'Necoro' Neumann"
+ __description__ = "Show notifications when an emerge process finishes."
+ __dependency__ = ["dev-python/notify-python"]
+
+ def __init__ (self):
+ Plugin.__init__(self)
+ self.add_call("after_emerge", self.notify)
+
+ def notify (self, retcode, **kwargs):
+ if retcode is None:
+ warning("NOTIFY :: %s", _("Notify called while process is still running!"))
+ else:
+ icon = APP_ICON
+ if retcode == 0:
+ text = _("Emerge finished!")
+ descr = ""
+ urgency = pynotify.URGENCY_NORMAL
+ else:
+ text = _("Emerge failed!")
+ descr = _("Error Code: %d") % retcode
+ urgency = pynotify.URGENCY_CRITICAL
+
+ get_listener().send_notify(base = text, descr = descr, icon = icon, urgency = urgency)
+
+register(Notify)
diff --git a/plugins/notify.xml b/plugins/notify.xml
deleted file mode 100644
index 8de08c8..0000000
--- a/plugins/notify.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<plugin xmlns="http://portato.sourceforge.net/plugin" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://portato.sourceforge.net/plugin http://portato.sourceforge.net/plugin.xsd">
-
- <author>René 'Necoro' Neumann</author>
- <name>Notify</name>
- <frontends>gtk</frontends>
-
- <import>portato.plugins.notify</import>
-
- <hooks>
- <hook type = "after_emerge" call = "notify" />
- </hooks>
-
-</plugin>
diff --git a/portato/plugins/__init__.py b/portato/plugins/__init__.py
index fe95dbc..5080cec 100644
--- a/portato/plugins/__init__.py
+++ b/portato/plugins/__init__.py
@@ -3,9 +3,14 @@
# File: portato/plugins/__init__.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2007 René 'Necoro' Neumann
+# Copyright (C) 2007-2008 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
#
# Written by René 'Necoro' Neumann <necoro@necoro.net>
+
+"""
+This is a dummy module. The plugins loaded from here are in reality stored
+in /usr/share/portato/plugins or alike.
+"""
diff --git a/portato/plugins/notify.py b/portato/plugins/notify.py
deleted file mode 100644
index 78812b3..0000000
--- a/portato/plugins/notify.py
+++ /dev/null
@@ -1,22 +0,0 @@
-import pynotify
-
-from portato import get_listener
-
-from portato.helper import warning, error, debug
-from portato.constants import APP_ICON, APP
-
-def notify (retcode, **kwargs):
- if retcode is None:
- warning("NOTIFY :: %s", _("Notify called while process is still running!"))
- else:
- icon = APP_ICON
- if retcode == 0:
- text = _("Emerge finished!")
- descr = ""
- urgency = pynotify.URGENCY_NORMAL
- else:
- text = _("Emerge failed!")
- descr = _("Error Code: %d") % retcode
- urgency = pynotify.URGENCY_CRITICAL
-
- get_listener().send_notify(base = text, descr = descr, icon = icon, urgency = urgency)