Functions & Scripts Auto Setup (FaSAS)
Добавлено: 04 мар 2023, 22:21
Делюсь как идеей маленьким скриптом-установщиком. Может запускать скрипты из списка и устанавливать функции из скриптов. Список заполните сами своими данными. Можно дополнить скрипт возможностями установки скриптов из файлов, с других роутеров по SSH и другими возможностями.
Код: Выделить всё
#------------------------------------------------------------
# Functions & Scripts Auto Setup (FaSAS)
# by Sertik 04/03/2023
#------------------------------------------------------------
# логика работы:
# скрипт ищет в ключевом массиве arrayComUser функции и скрипты пользователя
# если элемент массива не имеет значения (ключ есть, значения нет), то данный
# элемент считается скриптом репозитория и выполняется
# если же элемент имеет ключ и значение, то ключ считается именем функции, лежащей в скрипте
# с именем значения элемента. Производится запуск этого скрипта для установки функции в окружение
# сама функция не выполняется, имена установленных скриптом функций накапливаются в
# глобальном массиве funcList для последующего пользования
# list users scripts and functions:
:local arrayComUser {\
"CalcDay"="";
"scriptERROR"="";
"FuncAS"="FuncAs+";
"funcERROR"="mama";
"FuncPassGen"="Func_PassGen";
"SSHsms"="!_SSH_sendSMS"
}
# -- > work part
:log info ""
:log warning "Function & scripts auto Setup"
:log error "========================="
:log info ""
:global funcList [:toarray ""]
:local calc
:local funcerror
:local scripterror
:foreach key,val in=$arrayComUser do={
:if (([:len [/system script environment find $key]]=0) && ($val!="")) do={
:do {
/system script run $val
:log warning "function $key is set"
:set funcList ($funcList, $key)
} on-error={
:log error "error setup function $key"
:set funcerror ($funcerror+1)}
}
:if ($val="") do={
:do {
/system script run $key
:log warning "script $key is run"
:set calc ($calc+1)
} on-error={
:log error "error: script $key not find"
:set scripterror ($scripterror+1)}
}
}
# ---> report part in log
:log info ""
:log warning "setup is done";
:log error "==========="
:log info ""
:log warning ("scripts executed: $calc")
:if ($scripterror>0) do={:log error ("error run script: $scripterror")}
:log warning "in environment is set functions: $[:len $funcList]"
:log warning "list is installed functions:"
:log warning ("[\$$funcList]")
:if ($funcerror>0) do={:log error ("error set functions: $funcerror")}
# end script