From b5070297414dce26c7d84bd1f76e193f9d054027 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 7 Apr 2013 04:19:45 +0400 Subject: [PATCH] Replace shell script with python one --- packages/gentoo/app-misc/powerline/Manifest | 2 +- .../app-misc/powerline/powerline-9999.ebuild | 4 +- .../bindings/awesome/powerline-awesome.py | 38 +++++++++++++++++++ powerline/bindings/awesome/powerline.lua | 4 +- powerline/bindings/awesome/powerline.sh | 10 ----- 5 files changed, 43 insertions(+), 15 deletions(-) create mode 100755 powerline/bindings/awesome/powerline-awesome.py delete mode 100755 powerline/bindings/awesome/powerline.sh diff --git a/packages/gentoo/app-misc/powerline/Manifest b/packages/gentoo/app-misc/powerline/Manifest index 802c4188..cca6d4dd 100644 --- a/packages/gentoo/app-misc/powerline/Manifest +++ b/packages/gentoo/app-misc/powerline/Manifest @@ -1 +1 @@ -EBUILD powerline-9999.ebuild 4091 SHA256 d1d13b09e3ebefdaa1b90c50ccceb563bb444ca0f484e6448a993d2612dfbb78 SHA512 47f211249bb85608cb9c5b8e72daba5c36971e294e27843396cbf517bc792db64a4f80e843f5c883f8411ed4c9cef5618f9d617b305303a31a4590636879dcd3 WHIRLPOOL 2fc50e1da46d56d160140d3a87a4d9421bf63d67c792bfd88486e0dc72d379045ed79d152aa060a014e7f6bf4eb232642463014de9523909946bd8b2cbf83371 +EBUILD powerline-9999.ebuild 4107 SHA256 721f3360196aa4caa3656ff6e051add2c70cbfc37e965fce9830ecb668148b81 SHA512 27660689e5a0cf86d17268a18fdd917abfb8b2d88b33049fe66f3394c9a85211f24e50af8df1f39d93d11e8bfd442e4636ed92821441daddb56ae9d34162296a WHIRLPOOL 602a2d0d36b1e80da9d1f00c019872369010cd413c4761c1f92a8f53ee5bfb63122d8c13e896700406bf71d99db5994bcd3c7ae46c07218d173bd7084f1a13f1 diff --git a/packages/gentoo/app-misc/powerline/powerline-9999.ebuild b/packages/gentoo/app-misc/powerline/powerline-9999.ebuild index 8eadbabb..be065566 100644 --- a/packages/gentoo/app-misc/powerline/powerline-9999.ebuild +++ b/packages/gentoo/app-misc/powerline/powerline-9999.ebuild @@ -105,11 +105,11 @@ src_install() { doins init.lua rm init.lua exeinto /usr/share/awesome/lib/powerline - doexe powerline/bindings/awesome/powerline.sh + doexe powerline/bindings/awesome/powerline-awesome.py else rm powerline/bindings/awesome/powerline.lua fi - rm powerline/bindings/awesome/powerline.sh + rm powerline/bindings/awesome/powerline-awesome.py # There are no standard location for this, thus using /usr/share/powerline if use tmux ; then elog "" diff --git a/powerline/bindings/awesome/powerline-awesome.py b/powerline/bindings/awesome/powerline-awesome.py new file mode 100755 index 00000000..c0aa7961 --- /dev/null +++ b/powerline/bindings/awesome/powerline-awesome.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8:noet + +from powerline import Powerline +import sys +from time import sleep +from powerline.lib.monotonic import monotonic +from subprocess import Popen, PIPE +from threading import Thread +from select import select + +powerline = Powerline('wm', renderer_module='pango_markup') +powerline.update_renderer() + +try: + interval = float(sys.argv[1]) +except IndexError: + interval = 2 + +def read_to_log(pl, client): + for line in client.stdout: + if line: + pl.info(line, prefix='awesome-client') + for line in client.stderr: + if line: + pl.error(line, prefix='awesome-client') + if client.wait(): + pl.error('Client exited with {0}', client.returncode, prefix='awesome') + +while True: + start_time = monotonic() + s = powerline.render(side='right') + request = "powerline_widget:set_markup('" + s.replace('\\', '\\\\').replace("'", "\\'") + "')\n" + client = Popen(['awesome-client'], shell=False, stdout=PIPE, stderr=PIPE, stdin=PIPE) + client.stdin.write(request.encode('utf-8')) + client.stdin.close() + read_to_log(powerline.pl, client) + sleep(max(interval - (monotonic() - start_time), 0.1)) diff --git a/powerline/bindings/awesome/powerline.lua b/powerline/bindings/awesome/powerline.lua index 9424a2fc..659fade4 100644 --- a/powerline/bindings/awesome/powerline.lua +++ b/powerline/bindings/awesome/powerline.lua @@ -7,5 +7,5 @@ powerline_widget:set_align('right') function powerline(mode, widget) end bindings_path = string.gsub(debug.getinfo(1).source:match('@(.*)$'), '/[^/]+$', '') -powerline_cmd = bindings_path .. '/powerline.sh' -awful.util.spawn_with_shell('ps ax -u $USER | grep "' .. powerline_cmd .. '" | grep -v grep || (' .. powerline_cmd .. ')') +powerline_cmd = bindings_path .. '/powerline-awesome.py' +awful.util.spawn_with_shell('ps -C powerline-awesome.py || ' .. powerline_cmd) diff --git a/powerline/bindings/awesome/powerline.sh b/powerline/bindings/awesome/powerline.sh deleted file mode 100755 index d068b958..00000000 --- a/powerline/bindings/awesome/powerline.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -SLEEP=2 -[[ "$1" != "" ]] && SLEEP="$1" - -while true; do - PL_AWESOME_RIGHT=$(powerline wm right -r pango_markup) - echo "powerline_widget:set_markup('$PL_AWESOME_RIGHT')" | awesome-client - sleep $SLEEP -done