mirror of
https://github.com/clearml/clearml-agent
synced 2025-02-07 05:19:17 +00:00
Add /bin/bash -c "command" support. Task binary
should be set to /bin/bash
and entry_point should be set to -c command
This commit is contained in:
parent
aef6aa9fc8
commit
6213ef4c02
@ -225,10 +225,14 @@ class LiteralScriptManager(object):
|
|||||||
"""
|
"""
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
target_file_name_module_call = None
|
target_file_name_module_call = None
|
||||||
if execution.entry_point and execution.entry_point.strip().startswith("-m "):
|
if execution.entry_point and (
|
||||||
|
execution.entry_point.strip().startswith("-m ") or
|
||||||
|
execution.entry_point.strip().startswith("-c ")
|
||||||
|
):
|
||||||
# this is a module we cannot use it as file name
|
# this is a module we cannot use it as file name
|
||||||
target_file_name_module_call = 'untitled.py'
|
target_file_name_module_call = 'untitled.sh' \
|
||||||
# let's [arse the working_dir
|
if execution.entry_point.strip().startswith("-c ") else 'untitled.py'
|
||||||
|
# let's parse the working_dir and override the default literal file
|
||||||
if execution.working_dir and ":" in execution.working_dir:
|
if execution.working_dir and ":" in execution.working_dir:
|
||||||
execution.working_dir, target_file_name_module_call = execution.working_dir.split(":", 1)
|
execution.working_dir, target_file_name_module_call = execution.working_dir.split(":", 1)
|
||||||
log.warning(
|
log.warning(
|
||||||
@ -2910,7 +2914,7 @@ class Worker(ServiceCommandSection):
|
|||||||
# check if this is a module load, then load it.
|
# check if this is a module load, then load it.
|
||||||
# noinspection PyBroadException
|
# noinspection PyBroadException
|
||||||
try:
|
try:
|
||||||
if is_python_binary and execution.entry_point and execution.entry_point.split()[0].strip() == '-m':
|
if is_python_binary and execution.entry_point and execution.entry_point.strip().split()[0].strip() == '-m':
|
||||||
# do not parse $env when running as user
|
# do not parse $env when running as user
|
||||||
if "$" in execution.entry_point and not ENV_TASK_EXECUTE_AS_USER.get() and is_linux_platform():
|
if "$" in execution.entry_point and not ENV_TASK_EXECUTE_AS_USER.get() and is_linux_platform():
|
||||||
print("INFO: parsing environment variables: {}".format(execution.entry_point))
|
print("INFO: parsing environment variables: {}".format(execution.entry_point))
|
||||||
@ -2941,6 +2945,9 @@ class Worker(ServiceCommandSection):
|
|||||||
patch_add_task_init_call(converted_script_filename)
|
patch_add_task_init_call(converted_script_filename)
|
||||||
|
|
||||||
extra.append(converted_script_filename)
|
extra.append(converted_script_filename)
|
||||||
|
elif is_bash_binary and execution.entry_point and execution.entry_point.strip().split()[0].strip() == '-c':
|
||||||
|
extra.append("-c")
|
||||||
|
extra.append(" ".join(execution.entry_point.strip().split()[1:]))
|
||||||
else:
|
else:
|
||||||
extra.append(execution.entry_point)
|
extra.append(execution.entry_point)
|
||||||
except Exception:
|
except Exception:
|
||||||
|
Loading…
Reference in New Issue
Block a user