История изменений
Исправление wandrien, (текущая версия) :
Прикидываем, как будет выглядеть работа с пайпланами:
local sh = require("shellua") -- или как назовём
-- Простой пайплайн
sh.cmd("ls", "-la")
:pipe("grep", "lua")
:pipe("wc", "-l")
:run()
-- С редиректами
sh.cmd("cat")
:stdin("/etc/passwd")
:pipe("sort")
:stdout("sorted.txt")
:run()
-- Fork с lua-функцией
sh.fork(function()
for i = 1, 100 do
print(i)
end
end)
:pipe("grep", "[13579]$")
:run()
-- Сжатие содержимого переменной без блокировки основного процесса
local handle = sh
.printf("%s", bigtext)
:pipe("gzip", "-9")
:stdout("/tmp/tmp-1.gz")
:spawn()
foo() -- выполняем еще какую-то работу параллельно
handle.wait()
Исходная версия wandrien, :
Прикидываем, как будет выглядеть работа с пайпланами:
local sh = require("shellua") -- или как назовём
-- Простой пайплайн
sh.cmd("ls", "-la")
:pipe("grep", "lua")
:pipe("wc", "-l")
:run()
-- С редиректами
sh.cmd("cat")
:stdin("/etc/passwd")
:pipe("sort")
:stdout("sorted.txt")
:run()
-- Или можно сократить имена
sh.cmd("cat")
:in("/etc/passwd")
:pipe("sort")
:out("sorted.txt")
:run()
-- Fork с lua-функцией
sh.fork(function()
for i = 1, 100 do
print(i)
end
end)
:pipe("grep", "[13579]$")
:run()
-- Сжатие содержимого переменной без блокировки основного процесса
local handle = sh
.printf("%s", bigtext)
:pipe("gzip", "-9")
:stdout("/tmp/tmp-1.gz")
:spawn()
foo() -- выполняем еще какую-то работу параллельно
handle.wait()