Невозможно передать аргументы в файл JavaScript с помощью config.yaml в API событий OctoPrint
Я пытаюсь передать параметры в файл JavaScript, который будет выполняться с использованием NodeJS.
Файл JavaScript содержит следующую функцию:
function handleEvent() {
var options = { method: 'POST',
url: 'http://'+LOCAL_PC_ADDRESS+'/events/job/started',
qs:
{ filename: 'example/file.gcode',
testArguments: process.argv },
headers:
{
'cache-control': 'no-cache' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
}
В каком поле testArguments
используется для проверки аргументов, передаваемых в этот файл.
Если я бегу:
node myscript.js "foo" "bar"
В возвращенный POST я получаю то, что ожидаю:
{ filename: 'example/file.gcode',
testArguments:
[ '/usr/bin/node',
'/home/pi/prototype-rasp/myfile.js',
'foo',
'bar'
] }
И до сих пор все в порядке.
Проблемы возникают, когда я использую перехватчики событий API OctoPrint, я настраиваю события в config.yaml, как показано в документации. Часть этого config.yaml сообщается здесь:
events:
enabled: True
subscriptions:
- event: Connected
command: /usr/bin/node /home/pi/prototype-rasp/myscript.js "foo" "bar"
type: system
enabled: true
Я пытался также с помощью command: /usr/bin/node /home/pi/prototype-rasp/myscript.js -- "bar" "foo"
, Я запускаю событие OctoPrint, которое правильно обнаружило ловушку события yaml, запускает скрипт, но в нем нет аргументов process.argv
, пропуская фу и бар.
Есть идеи как это решить?