serkhay
Тогда присмотритесь к функции io.popen

Йеее-ссс! Спасибо огромное!

Получилось, кусок кода реализующий это, работать оказывается так же как и с файлом :)
f_pipe = io.popen("pacman -Qu")
-- Создаем пустую таблицу пакетов
local pkg = {}
-- Читаем список обновлений в таблицу
-- одновременно читая их количество
local num_pkg = 0
for line in f_pipe:lines() do
  pkg[num_pkg] = (num_pkg+1)..". "..line
  num_pkg = num_pkg + 1
end
io.close(f_pipe)

А вот результат
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
serkhay
Ну, как мне кажется, нужно просто использовать в вашем случае
os.execute ("pacman -Qu")

Вывод выполняется в консоль, а возвращаемое этой функцией значение носит характер статусного. Интересует возможность возвратить в какую-либо переменную результат выполнения консольной команды
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
palpalych, думаю необходимо поставить себе какую-нибудь сложную задачу и начать её решать, ища средства для её реализации.

Я сам не программист по образованию, и программирование осваивал по мере реализации своих идей, откуда имею недостаток в фундаментальности своих знаний, частично компенсируя разнообразным опытом.

Изучать web-разработку на стандартных примерах имхо скучно и в конце концов надоест, без какой-то цели занятие бессмысленное. Найдите для себя такую задачу, чтобы она целиком вас захватила - результат не замедлит появится ;)
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
Задача следующая - перенаправить вывод команды pacman -Qu в таблицу строк Lua.

Делаю виджет, отображающий список доступных обновлений, и пока эта задача реализована так

1. Каждые 5 минут cron синхронизирует базу

pacman -Syy

а так же выводит список доступных обновлений в текстовый файл

pacman -Qu > updates.lst

2. Далее lua-скрипт в conky читает этот файл в таблицу строк и парсит полученную структуру

Вопрос - как можно обойтись без промежуточного вывода в файл

Текст скрипта

require	'cairo'
----------------------------------------------------------------------------------
--	Функция отрисовки, вызываемая из conky
----------------------------------------------------------------------------------
function conky_startlua()
if conky_window == nil then return end
-- Создаем поверхность для рисования
local cs = cairo_xlib_surface_create (conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
-- Создаем ресурс для рисования
cr = cairo_create (cs)
-- Открываем для чтения файл со списком пакетов
f = io.open("/home/maisvendoo/.conky/updates.lst", "r")
-- Создаем пустую таблицу пакетов
local pkg = {}
-- Читаем список обновлений в таблицу
-- одновременно читая их количество
local num_pkg = 0
for line in f:lines() do
  pkg[num_pkg] = line
  num_pkg = num_pkg + 1
end
-- Вывод на экран
-- Заголовок
local title = "Доступные обновления ("..num_pkg..")"
cairo_select_font_face(cr, 'Arial', 0, 0)
cairo_set_font_size(cr, 18)
cairo_set_source_rgba(cr, 1, 1, 1, 1)
cairo_move_to(cr, 10, 50)
cairo_show_text(cr, title)
-- Список
local extents = cairo_text_extents_t:create()
local tx = 10
local ty0 = 100
local ty = ty0
local max_tw = 0
cairo_select_font_face(cr, 'Terminus', 0, 0)
cairo_set_font_size(cr, 15)
cairo_set_source_rgba(cr, 1, 1, 1, 1)
for j = 0, num_pkg - 1 do
  -- Цвет по умолчанию
  cairo_set_source_rgba(cr, 0.7, 0.7, 0.7, 1)
  -- Выбираем цвет в зависимости от типа обновления
  -- Ядро
  if string.find(pkg[j], "linux") ~= nil then
    cairo_set_source_rgba(cr, 1, 0, 0, 1)
  end
  -- Система инициализации
  if string.find(pkg[j], "systemd") ~= nil then
    cairo_set_source_rgba(cr, 1, 0.5, 0, 1)
  end
  -- Офисный пакет
  if string.find(pkg[j], "libre") ~= nil then
    cairo_set_source_rgba(cr, 0, 0.5, 0, 1)
  end
  -- Разработка на java
  if (string.find(pkg[j], "java") ~= nil) or (string.find(pkg[j], "jre") ~= nil) then
    cairo_set_source_rgba(cr, 0, 1, 1, 1)
  end
  -- Разработка на C/C++
  if (string.find(pkg[j], "gcc") ~= nil) or (string.find(pkg[j], "glibc") ~= nil) then
    cairo_set_source_rgba(cr, 0.35, 0.0, 0.62, 1)
  end
  -- Драйвера NVidia
  if string.find(pkg[j], "nvidia") ~= nil then
    cairo_set_source_rgba(cr, 0, 1.0, 0, 1)
  end
  cairo_text_extents (cr, pkg[j], extents)
  cairo_move_to(cr, tx, ty)
  cairo_show_text(cr, pkg[j])
  if extents.width > max_tw then max_tw = extents.width end
  ty = ty + extents.height + 2
  if ty > conky_window.height - ty0 then
    ty = ty0
    tx = tx + max_tw + 5
  end
end
io.close(f)
end
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
Kycok
tint2-svn?

Так точно, svn

Добавил ещё lua-based виджет отображающий список доступных обновлений с раскраской по категориям и выводом в несколько колонок



P. S,: Есть вопрос в связи с этим

P.P.S.: Вопрос снят, указанная приблуда готова :)

Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
Попробовал LUA-скрипты в conky. Для этого пришлось установить из аура toluapp и conky-lua, так как дефолтная сборка LUA не поддерживает. Забацал такие вот часики, думаю что ещё запилить



Да и тильду убрал, вместо нее guake перекрывающий весь экран по F12
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
Установил из аура. Симпатичная полезная штука. Сам работаю с пакманом из консоли, но кому-то определенно будет полезно
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
Natrio
maisvendoo, у меня такое впечатление, что у вас одновременно две версии feh – с первой (/usr/bin/feh) у вас вывод ldd, а вторая ругается на отсутствие libpng15, с которой первая никак не связана.

Вы правы. Была установлена ещё версия feh-2.7 из исходников, обитавшая по адресу /usr/local/bin/feh. Волшебный "судо-мейк-анинсталл" вернул всё на круги своя - feh заработал снова :)

Всем спасибо за помощь!

P.S.: Какой черт дернул меня собирать feh автомейком, я уж и не помню... :(
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
[[email protected] ~]$ ldd /usr/bin/feh
        linux-vdso.so.1 (0x00007ffff4fb3000)
        libcurl.so.4 => /usr/lib/libcurl.so.4 (0x00007f3caf3e6000)
        libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00007f3caf1e3000)
        libexif.so.12 => /usr/lib/libexif.so.12 (0x00007f3caef9d000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007f3caec9f000)
        libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007f3caea6a000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f3cae731000)
        libImlib2.so.1 => /usr/lib/libImlib2.so.1 (0x00007f3cae4c6000)
        libgiblib.so.1 => /usr/lib/libgiblib.so.1 (0x00007f3cae2bb000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f3cadf0e000)
        libssh2.so.1 => /usr/lib/libssh2.so.1 (0x00007f3cadce5000)
        libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0x00007f3cada79000)
        libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0x00007f3cad66f000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00007f3cad459000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f3cad23d000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f3cad02a000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f3cace0b000)
        libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f3cacc07000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007f3cac968000)
        libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007f3cac758000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f3caf648000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f3cac554000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f3cac34e000)

[[email protected] ~]$ feh --bg-scale /home/maisvendoo/admin/desktop/0001.jpg
feh: error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or directory

... ладно, буду думать
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
Natrio
maisvendoo, если у вас те же версии, то feh должен работать :)

Не работает. Послушался, поставил репозиторий

# USA
Server = http://mirror.us.leaseweb.net/archlinux/$repo/os/$arch

один единственный его оставил. Дык переустновил feh, это ничего не дало.
На вопрос

# pacman -Syu

был получен ответ что делать ничего не надо.

Да вобщем пока пофиг, костыль в виде нитрогена привел к желаемому, однако знания ради и опыта для неплохо было бы разобраться...

Сборка кайро-убунту из аура ничего не дала тоже
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org