@@ 0,0 1,66 @@
+#!/usr/bin/python
+
+# =============================================================================
+#
+# hg-autosync - Mercurial autosync extension
+# Copyright (C) 2009 Oben Sonne <obensonne@googlemail.com>
+#
+# This file is part of hg-autosync.
+#
+# hg-autosync 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 3 of the License, or
+# (at your option) any later version.
+#
+# hg-autosync 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 hg-autosync. If not, see <http://www.gnu.org/licenses/>.
+#
+# =============================================================================
+
+"""Example alert tool for the Mercurial AutoSync extension.
+
+This alerter can be used on recent Linux desktop systems.
+
+It uses the freedesktop.org DBus notification interface to let a warning
+message pop up in the notification area.
+
+To test it, run
+
+ $ python xdg-notification.py test-repo "bla bla"
+
+To use it, set the autosync -> alert option in your global HGRC file or in an
+autosync'ed repository's HGRC file to /path/to/xdg-notification.py. Or put (and
+optionally rename) it somewhere in your path and just specify the tool's
+filename for the alert option.
+
+"""
+
+import sys
+
+import dbus
+
+NID = 1568793152 # just a random number
+DURATION = 30 # seconds, set to 0 to show forever
+ICON = "dialog-warning" # adjust as you like
+
+def alert(repo, error):
+
+ bus = dbus.SessionBus()
+ proxy = bus.get_object("org.freedesktop.Notifications",
+ "/org/freedesktop/Notifications")
+ notid = dbus.Interface(proxy, "org.freedesktop.Notifications")
+
+ summary = "AutoSync"
+ text = ("Problems in repository <b>%s</b>: <i>%s</i>." %
+ (repo, error))
+
+ notid.Notify("AutoSync", NID, ICON, summary, text, [], {}, DURATION)
+
+if __name__ == '__main__':
+
+ alert(sys.argv[1], sys.argv[2])
No newline at end of file