#!/usr/bin/env python
from __future__ import print_function
from xbowflow._version import __version__
from xbowflow.pipelines import SubprocessKernel, Pipeline
from xbowflow.clients import dask_client
import sys
import os
import argparse

parser = argparse.ArgumentParser(description='Execute a command on a worker')

parser.add_argument('cmd', nargs='*', help='The command to execute')
args = parser.parse_args()

client = dask_client()
cmd = ' '.join(args.cmd)
def shellquote(s):
    return "'" + s.replace("'", "'\\''") + "'"
full_cmd = 'cd {}; {}'.format(os.getcwd(), cmd)
kernel = SubprocessKernel(shellquote(full_cmd))
pipe = Pipeline(client, [kernel])
result = pipe.run({})
print(result['output'].decode('utf-8'))
client.close()
