77
Из данных, полученных на предыдущем шаге, формирует список
аргументов для дальнейшего использования, приводя их к формату,
доступному для запуска в командной строке.
В случае если пользователь запускает скрипт с дополнительными
параметрами, то они дописываются к телу скрипта
Создаёт лог файл и записывает в него поток вывода
Создает отдельный фоновый процесс в ОС
Вызывает модуль, содержащий код выполняемой команды. Модули
команд представлены в виде файлов «.py» и расположены в отдельной
папке «modules»
Записывает содержимое лог-файла в историю
Код функции «starter»
def starter(dict):
"""Запускает выполнение команды в фоновом процессе."""
python = opj(conf.BASE_DIR, './venv/bin/python')
opt = [
python, 'starter.py', dict['cmnd'],
'--name', str(dict['proj'].name),
'--pid', str(dict['proj'].id),
'--key', dict['uniq'],
'--date', dict['cdat'],
]
parser = ArgumentParser()
parser.add_argument('-H', '--history', help="Save log to history", action='store_true')
parser.add_argument('-x', '--script', help='List of script files', action='append')
parser.add_argument('-o', '--options', help='Custom script options', action='append')
parser.add_argument('-s', '--server', help="Server's ssh address")
parser.add_argument('-P', '--port', help="Server's port")
parser.add_argument('-D', '--date', help='Cron job date')
parser.add_argument('-n', '--name', help='Project name')
parser.add_argument('cmd', help='Command name')
parser.add_argument('-k', '--key', help='Unique key')
parser.add_argument('-i', '--id', help='Project id')
parser.add_argument('-l', '--login', help='Server login')
parser.add_argument('-p', '--password', help='Server password')
args = parser.parse_args()
command = import_module('modules.%s' % args.cmd)
errfile = ERR_FILE + args.key
logfile = LOG_FILE + args.key