diff options
author | Mattias Andrée <maandree@operamail.com> | 2014-03-09 23:42:27 +0100 |
---|---|---|
committer | Mattias Andrée <maandree@operamail.com> | 2014-03-09 23:42:27 +0100 |
commit | d4cf576c2c88c934802fafe141eed309b1a017bd (patch) | |
tree | 5c1fc0db7c1847a1adb752045a99e2d8083243e7 /examples/plugins/pacman | |
parent | fix errors in pacman plugin (diff) | |
download | xpybar-d4cf576c2c88c934802fafe141eed309b1a017bd.tar.gz xpybar-d4cf576c2c88c934802fafe141eed309b1a017bd.tar.bz2 xpybar-d4cf576c2c88c934802fafe141eed309b1a017bd.tar.xz |
m pacman + pacman demo
Signed-off-by: Mattias Andrée <maandree@operamail.com>
Diffstat (limited to 'examples/plugins/pacman')
-rw-r--r-- | examples/plugins/pacman | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/examples/plugins/pacman b/examples/plugins/pacman new file mode 100644 index 0000000..3ce20fb --- /dev/null +++ b/examples/plugins/pacman @@ -0,0 +1,62 @@ +# -*- python -*- + +# A xpybar configuration example testing the features of plugins.pacman + +import time +import threading + +from plugins.pacman import Pacman +from plugins.clock import Clock + + +OUTPUT, HEIGHT, YPOS, TOP = 0, 5 * 12, 24, True + + +clock = Clock(sync_to = 30 * Clock.MINUTES) + +start_ = start +def start(): + start_() + async(lambda : clock.continuous_sync(lambda : bar.invalidate())) + + +def redraw(): + def opts(deps, req_installed): + rc = [] + for pkg, desc, installed in deps: + text = pkg + if desc is not None: + text += '(%s)' % desc + if req_installed and not installed: + text = '\033[31m%s\033[m' % text + rc.append(text) + return rc + + def get(installed): + p = Pacman('python', installed) + + text = '%s=%s[%s] for %s (%s) from %s under %s provides (%s), replaces (%s) and conflicts with (%s)' + text += ' and depends on (%s) and\noptionally (%s), is validated by (%s) and packaged by %s at %s, ' + text += 'with size %.2fKB' + + params = [p.name, p.version, ','.join(p.groups), p.architecture, p.description, p.url, + ','.join(p.licenses), ','.join(p.provides), ','.join(p.replaces), ','.join(p.conflicts), + ','.join(p.depends), ','.join(opts(p.optdepends, installed)), ','.join(p.validated_by), + (p.packager if p.packager else '\033[31munknown\033[m'), p.build_date, p.installed_size] + + if not installed: + text += ', %.2fKB download from %s' + params += [p.download_size, p.repository] + + if installed: + text += ', installed %s %splicitly with%s script,\n' + text += 'required by %i packages and optionally by %i packages' + params += [p.install_date, ('ex' if p.installed_explicitly else 'im'), + ('' if p.install_script else 'out'), len(p.required), len(p.optrequired)] + + return text % tuple(params) + + text = '%s\n%s' % (get(True), get(False)) + bar.clear() + bar.draw_coloured_text(0, 10, 0, 2, text) + |