summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorent Le Coz <louiz@louiz.org>2011-10-29 17:21:03 +0200
committerFlorent Le Coz <louiz@louiz.org>2011-10-29 17:21:03 +0200
commit432afd6179e69b70b290fef68ea3bb263ff3b4c1 (patch)
tree0f5cf6e2f29ba234a8f7276577dda0a1a3600830
parentab60a8ddde7bd9478bfe60daf48145e5b55690f0 (diff)
parent21f0c8f3f348ca515b81208c73704d5fd7b10328 (diff)
downloadpoezio-432afd6179e69b70b290fef68ea3bb263ff3b4c1.tar.gz
poezio-432afd6179e69b70b290fef68ea3bb263ff3b4c1.tar.bz2
poezio-432afd6179e69b70b290fef68ea3bb263ff3b4c1.tar.xz
poezio-432afd6179e69b70b290fef68ea3bb263ff3b4c1.zip
Merge branch 'plugins' of http://git.louiz.org/poezio into plugins
-rw-r--r--plugins/link.py7
-rw-r--r--src/core.py2
-rwxr-xr-xsrc/daemon.py41
3 files changed, 18 insertions, 32 deletions
diff --git a/plugins/link.py b/plugins/link.py
index 0cd1a0f1..8ef52982 100644
--- a/plugins/link.py
+++ b/plugins/link.py
@@ -19,10 +19,9 @@ class Plugin(BasePlugin):
if not messages:
return None
for message in messages[::-1]:
- match = url_pattern.search(clean_text(message.txt))
- if match:
- self.core.information('[%s]' % (match.groups(),))
- for url in list(match.groups())[::-1]:
+ matches = url_pattern.findall(clean_text(message.txt))
+ if matches:
+ for url in matches[::-1]:
if nb == 1:
return url
else:
diff --git a/src/core.py b/src/core.py
index 1fb06b38..88a726ea 100644
--- a/src/core.py
+++ b/src/core.py
@@ -1730,7 +1730,7 @@ class Core(object):
try:
self.remote_fifo.write(command)
except (IOError) as e:
- self.information('Could not execute [%s]: %s' % (command, e,), 'Error')
+ self.information('Could not execute [%s]: %s' % (command.strip(), e,), 'Error')
self.remote_fifo = None
else:
pass
diff --git a/src/daemon.py b/src/daemon.py
index a9d888f1..f23d6b5f 100755
--- a/src/daemon.py
+++ b/src/daemon.py
@@ -1,3 +1,4 @@
+#/usr/bin/env python3
# Copyright 2011 Florent Le Coz <louiz@louiz.org>
#
# This file is part of Poezio.
@@ -6,15 +7,13 @@
# it under the terms of the zlib license. See the COPYING file.
"""
-This file is a standalone program that creates a fifo file (if it doesn’t exist
-yet), opens it for reading, reads commands from it and executes them (each line
-should be a command).
+This file is a standalone program that reads commands on
+stdin and executes them (each line should be a command).
-Usage: ./daemon.py <path_tofifo>
+Usage: cat some_fifo | ./daemon.py
-That fifo should be in a directory, shared through sshfs, with the remote
-machine running poezio. Poezio then writes command in it, and this daemon
-executes them on the local machine.
+Poezio writes commands in the fifo, and this daemon executes them on the
+local machine.
Note that you should not start this daemon if you do not trust the remote
machine that is running poezio, since this could make it run any (dangerous)
command on your local machine.
@@ -24,8 +23,6 @@ import sys
import threading
import subprocess
-from fifo import Fifo
-
class Executor(threading.Thread):
"""
Just a class to execute commands in a thread.
@@ -38,26 +35,16 @@ class Executor(threading.Thread):
self.command = command
def run(self):
- print('executing %s' % (self.command,))
+ print('executing %s' % (self.command.strip(),))
subprocess.call(self.command.split())
-def main(path):
+def main():
while True:
- fifo = Fifo(path, 'r')
- while True:
- line = fifo.readline()
- if line == '':
- del fifo
- break
- e = Executor(line)
- e.start()
-
-def usage():
- print('Usage: %s <fifo_name>' % (sys.argv[0],))
+ line = sys.stdin.readline()
+ if line == '':
+ break
+ e = Executor(line)
+ e.start()
if __name__ == '__main__':
- argc = len(sys.argv)
- if argc != 2:
- usage()
- else:
- main(sys.argv[1])
+ main()