Co(n)stantine👨🔬
ой не туда
Snusmumriken
Mark ☢️
Snusmumriken
Ну ладно : )
Mark ☢️
Чо за край
Snusmumriken
бэ
Snusmumriken
Не, я про то где и как используют луи.
Ну, по сути, примерно так же как и петон, или как встраиваемую в здоровенный комплекс скриптовую интерфейсню. Объём областей довольно приличный, позволяет мне бутерброд с маслом.
Snusmumriken
Ещё луи меня склонять поучи, мистер луёвый кодераст ))
Mark ☢️
Луита какая то
Mark ☢️
Луйня
Mark ☢️
Луапозикс дирент филес
Mark ☢️
В зависимости от версии луапозикс оно то нулл возвращает при ошибках то еррор вызывает
Mark ☢️
Что за долбодятлы проектировали апи
Mark ☢️
А что получше?
vvzvlad
Roman
Roman
Mark ☢️
Go?
В роутере на опенврт. Ага. Размер бинарей получающихся видел ?
Mark ☢️
Под мипсы и армы нормас ?
Mark ☢️
Со всякими там софтфлоатами и выравнивниямм
Anonymous
Если кросс компилятор есть, то возможно прокатит
Anonymous
Но я бы не стал использовать го для чего-либо
Anonymous
На роутерах скорее всего есть перл
mva
нету
mva
там только шелл и lua
mva
и то, вместо шелла занятая коробка
Anonymous
Это в опенврт?
mva
да
vvzvlad
там веб-интерфейс, емнип, на луа
mva
не только
bebebe
Mark ☢️
Roman
halt
Парни привет.
Подскажите где накосячил. Цель такая - открыть файл, прочитать построчно номер и передать этот номер в вызов
IsRun = true;
.
function main()
— Пытается открыть файл в режиме "чтения"
f = io.open(getScriptPath().."/usr/local/freeswitch/scripts/Test.txt","r");
end;
for line in f:lines() do;
api = freeswitch.API();
reply = api:executeString("luarun bridge_mur.lua ".. line .."");
end;
— Закрывает файл
f:close();
— Цикл будет выполнятся, пока IsRun == true
while IsRun do
sleep(100);
end;
function OnStop()
IsRun = false;
end;
halt
lua: obzvon.lua:8: attempt to index global 'f' (a nil value)
stack traceback:
obzvon.lua:8: in main chunk
[C]: in ?
halt
строка 8 - for line in f:lines() do;
mva
перед циклом сделай проверку что f не nil
mva
или io.open в assert убери (тогда в случае неоткрытия будет материться)
halt
Я второй день LUA вижу)
mva
Lua, не LUA
halt
Теперь просто молчит
mva
(так, для справки)
mva
mva
сказали же тебе, что файл не открылся :)
halt
Так где накосячил?
halt
Запускаю из под рута, прав должно быть достаточно. В файле всего 2 строки
mva
mva
но знаю как тебе узнать что не так
mva
f = io.open(getScriptPath().."/usr/local/freeswitch/scripts/Test.txt","r");
mva
вот это вот исправь на
mva
f, errmsg, code = io.open(getScriptPath().."/usr/local/freeswitch/scripts/Test.txt","r");
mva
потом внутри скобок у error(), который в if напиши errmsg
halt
Молчит
mva
не туда куда-то выводишь значит
mva
в смысле, у тебя там ничего stderr не ворует?
halt
IsRun = true;
function main()
— Пытается открыть файл в режиме "чтения"
— f = io.open(getScriptPath().."/usr/local/freeswitch/scripts/Test.txt","r");
f, errmsg, code = io.open(getScriptPath().."/usr/local/freeswitch/scripts/Test.txt","r");
end;
if not f then error(errmsg) end;
for line in f:lines() do;
api = freeswitch.API();
reply = api:executeString("luarun bridge_mur.lua ".. line .."");
end;
— Закрывает файл
f:close();
— Цикл будет выполнятся, пока IsRun == true
while IsRun do
sleep(100);
end;
function OnStop()
IsRun = false;
end;
halt
но там полный путь указан
halt
?
halt
Как проверить/7
halt
root@homevoip:/usr/local/freeswitch/scripts# lua obzvon.lua
lua: obzvon.lua:9: attempt to call global 'getScriptPath' (a nil value)
stack traceback:
obzvon.lua:9: in main chunk
[C]: in ?
halt
Скрипт на просторах интернет)
halt
https://quikluacsharp.ru/qlua-osnovy/primer-raboty-s-fajlami-v-qlua-lua/
Mark ☢️
halt
убрал. тоже самое
mva
если убрал, то того же самого быть не может
halt
естественно
halt
IsRun = true;
function main()
— Пытается открыть файл в режиме "чтения"
— f = io.open(getScriptPath().."/usr/local/freeswitch/scripts/Test.txt","r");
f, errmsg, code = io.open("/usr/local/freeswitch/scripts/Test.txt","r+");
end;
—print(getScriptPath())
—if not f then error(errmsg) end;
for line in f:lines() do;
api = freeswitch.API();
reply = api:executeString("luarun bridge_mur.lua ".. line .."");
end;
— Закрывает файл
f:close();
— Цикл будет выполнятся, пока IsRun == true
while IsRun do
sleep(100);
end;
function OnStop()
IsRun = false;
end;
halt
lua: obzvon.lua:11: attempt to index global 'f' (a nil value)
stack traceback:
obzvon.lua:11: in main chunk
[C]: in ?
halt
да пофиг же... хоть чтение, хоть чтение/запись
halt
c r так же
halt
root@homevoip:/usr/local/freeswitch/scripts# lua obzvon.lua
lua: obzvon.lua:7: attempt to index global 'freeswitch' (a nil value)
stack traceback:
obzvon.lua:7: in function 'main'
obzvon.lua:25: in main chunk
[C]: in ?
mva
mva
или таки просто оберни io.open в assert
mva
(и убери остальные переменные из присваивания обратно
halt
Нифига. Ладно, спасибо за уделеное время. Буду дальше мучится
mva
Snusmumriken
Карочи.
function run(path)
-- Проверка, что путь - это строка
assert(type(path) == 'string', 'Arg #1 error: string path expected')
local file, err = io.open(path)
-- Ругаемся, если с файлом какие-то ошибки
if not file then
return error('Open file error: ' .. path .. ':' .. tostring(err))
end
-- хз что это, но наверное не надо каждую строку дёргать
local api = freeswitch.API()
local execstr = "luarun bridge_mur.lua "
for line in file:lines() do
local reply = api:executeString(execstr .. line)
end
file:close()
end
local isRun = true
function OnStop()
IsRun = false
end
while isRun do
run('/usr/local/freeswitch/scripts/Test.txt')
sleep(100)
end
Snusmumriken
Эта фигня ругнётся в случае чего.