summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuel Gil Peyrot <linkmauve@linkmauve.fr>2018-07-28 13:31:25 +0200
committerEmmanuel Gil Peyrot <linkmauve@linkmauve.fr>2018-07-28 13:31:25 +0200
commit3006569ef5d6ea5b2d6131c1934b858d2c33e3dc (patch)
treea708fbe20a38374629b64f20377f3f2a4942b377
parent6be1a233e4f19fa5811a520fb17a9288c1d493b3 (diff)
downloadpoezio-3006569ef5d6ea5b2d6131c1934b858d2c33e3dc.tar.gz
poezio-3006569ef5d6ea5b2d6131c1934b858d2c33e3dc.tar.bz2
poezio-3006569ef5d6ea5b2d6131c1934b858d2c33e3dc.tar.xz
poezio-3006569ef5d6ea5b2d6131c1934b858d2c33e3dc.zip
plugins: Switch exec and upload to async/await.
-rw-r--r--plugins/exec.py9
-rw-r--r--plugins/upload.py5
2 files changed, 6 insertions, 8 deletions
diff --git a/plugins/exec.py b/plugins/exec.py
index 02788e57..7869f233 100644
--- a/plugins/exec.py
+++ b/plugins/exec.py
@@ -47,16 +47,15 @@ class Plugin(BasePlugin):
help='Execute a shell command and prints the result in the information buffer. The command should be ONE argument, that means it should be between \"\". The first argument (before the command) can be -o or -O. If -o is specified, it sends the result in the current conversation. If -O is specified, it sends the command and its result in the current conversation.\nExample: /exec -O \"uptime\" will send “uptime\n20:36:19 up 3:47, 4 users, load average: 0.09, 0.13, 0.09” in the current conversation.',
short='Execute a command')
- @asyncio.coroutine
- def async_exec(self, command, arg):
+ async def async_exec(self, command, arg):
create = asyncio.create_subprocess_exec('sh', '-c', command,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
try:
- process = yield from create
+ process = await create
except OSError as e:
self.api.information('Failed to execute command: %s' % (e,), 'Error')
return
- stdout, stderr = yield from process.communicate()
+ stdout, stderr = await process.communicate()
result = stdout.decode('utf-8')
stderr = stderr.decode('utf-8')
if arg == '-o':
@@ -69,7 +68,7 @@ class Plugin(BasePlugin):
self.api.information('%s:\n%s' % (command, result), 'Info')
if stderr:
self.api.information('stderr for %s:\n%s' % (command, stderr), 'Info')
- yield from process.wait()
+ await process.wait()
def command_exec(self, args):
args = common.shell_split(args)
diff --git a/plugins/upload.py b/plugins/upload.py
index 0f9ef736..3b2b4075 100644
--- a/plugins/upload.py
+++ b/plugins/upload.py
@@ -38,10 +38,9 @@ class Plugin(BasePlugin):
short='Upload a file',
completion=self.completion_filename)
- @asyncio.coroutine
- def async_upload(self, filename):
+ async def async_upload(self, filename):
try:
- url = yield from self.core.xmpp['xep_0363'].upload_file(filename)
+ url = await self.core.xmpp['xep_0363'].upload_file(filename)
except Exception:
exception = traceback.format_exc()
self.api.information('Failed to upload file: %s' % exception, 'Error')