Выполнение системных команд

Система в проекте Smart Home предоставляет возможность запуска произвольных файлов и скриптов синхронно и асинхронно.

Для этого доступны следующие методы:

  1. ExecuteSync(file, args): Этот метод позволяет запускать файлы и скрипты синхронно. Вы передаете имя файла или путь к скрипту в аргументе file, а также необходимые аргументы в виде объекта args. Пример использования:

    const file = 'script.js';
    const args = { param1: 'value1', param2: 'value2' };
    
    ExecuteSync(file, args);
    
  2. ExecuteAsync(file, args): Данный метод позволяет запускать файлы и скрипты асинхронно. Аргументы file и argsимеют такую же структуру, как и в методе ExecuteSync. Пример использования:

    const file = 'script.js';
    const args = { param1: 'value1', param2: 'value2' };
    
    ExecuteAsync(file, args);
    

Оба метода ExecuteSync и ExecuteAsync предоставляют возможность запуска произвольных файлов и скриптов в вашем проекте Smart Home. Синхронный режим означает, что выполнение кода будет блокировать последующие операции до завершения скрипта, в то время как асинхронный режим позволяет продолжить выполнение других операций без ожидания завершения скрипта. Вы можете использовать эти методы для интеграции с другими системами, выполнения пользовательских скриптов или запуска внешних приложений в вашем проекте Smart Home.


пример кода

# ExecuteSync
# ##################################
"use strict";

r = ExecuteSync "data/scripts/ping.sh", "google.com"
if r.out == 'ok'
    print "site is available ^^"

ping.sh

#!/usr/bin/env bash

ping -c1 $1 > /dev/null 2> /dev/null; [[ $? -eq 0 ]] && echo ok || echo "err"