Lua shell — запуск lua/moon скриптов из командной строки

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 12982
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 40 times
Been thanked: 303 times

Lua shell — запуск lua/moon скриптов из командной строки

Post by John Doe »

Назначение данной утилиты — реализовать запуск lua/moon скриптов из командной строки
максимально естественным образом, наподобие команд оболочки, и наравне с ними.

Точно так же скрипты можно запускать просто по имени, не задумываясь где именно
они расположены (в текущей папке, или в любом месте PATH).

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

Скриптам предоставляется ряд средств, в числе которых — простое обращение к другим
скриптам доступным в PATH, что позволяет сформировать собственную экосистему,
в некотором роде альтернативную модулям Lua.
citRiks
Posts: 1064
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 334 times
Been thanked: 53 times

Lua shell — запуск lua/moon скриптов из командной строки

Post by citRiks »

Latest post of the previous page:

buniak_a_h,
Согласен что неясен, нo во введении описан довольно богатый функционал,
превышающий ваше простое ассоциирование, вот и хотелось взглянуть.
Там например насписано что можно передавать параметры.
А насколько мне известно, с lua:@.. можно передать только один единственный строковый параметр?
поправьте меня если я где ошибаюсь
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
buniak_a_h
Posts: 2258
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 134 times
Been thanked: 241 times
Contact:

Lua shell — запуск lua/moon скриптов из командной строки

Post by buniak_a_h »

citRiks wrote: Wed 02 Sep, 2020 18:25 с lua:@.. можно передать только один единственный строковый параметр?
Только один - да.
Строковый - нет.
Отсюда - передаю таблицу.
Например, скрипт:

Code: Select all

far.Show(unpack(...))
Запускаю:
lua:@"C:\Temp\200902\qqq.lua" {[[C:\Temp\200902\qqq.lua]], 'qqq', math.pi}
Получаю:

Code: Select all

╔════════════════════════════╗
║  1│ C:\Temp\200902\qqq.lua ║
║  2│ qqq                    ║
║  3│ 3.1415926535898        ║
╚═══════ 3 arguments ════════╝
citRiks
Posts: 1064
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 334 times
Been thanked: 53 times

Lua shell — запуск lua/moon скриптов из командной строки

Post by citRiks »

buniak_a_h,
признателен за пример, полезно.
Но вот в чем еще незадача, этот метод некий нестандарт для запуска Луа-скриптов.
Во внешнем Луа-мире (что не ФАР) луа-скрипты получают таблицу аргументов arg с параметрами, включая имя скрипта.
Это верно что в ФАРе мы получаем и _filename, и это трехточие которое может быть таблицей,
и так можно воссоздать этот самый arg.
Но еще лучше было найти способ этого не делать,
т.е. без каких-либо изменений запускать Луа-скрипты справедливо ожидающие получить arg.
я вот чего-то и подумал, что в предмете обсуждения речь шла как раз про это
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
buniak_a_h
Posts: 2258
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 134 times
Been thanked: 241 times
Contact:

Lua shell — запуск lua/moon скриптов из командной строки

Post by buniak_a_h »

citRiks wrote: Wed 02 Sep, 2020 18:58 луа-скрипты получают таблицу аргументов arg с параметрами, включая имя скрипта.
Это касается только скриптов, загружающихся при загрузке макросов. Запуск через lua: по умолчанию ничего не передаёт (если явно не указать).
citRiks
Posts: 1064
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 334 times
Been thanked: 53 times

Lua shell — запуск lua/moon скриптов из командной строки

Post by citRiks »

buniak_a_h,
ну так тем более. иметь готовый arg (которого в ФАре из корпки просто нигде нет) было бы лучше чем не иметь его
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
John Doe
Бюрократ
Posts: 12982
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 40 times
Been thanked: 303 times

Lua shell — запуск lua/moon скриптов из командной строки

Post by John Doe »

citRiks wrote: Wed 02 Sep, 2020 16:44 Эмм, а куда делся предмет обсуждения, сам оный скрипт?
Застрял в процессе рефакторинга, увы.
https://t.me/FarManager — Telegram чат
citRiks
Posts: 1064
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 334 times
Been thanked: 53 times

Lua shell — запуск lua/moon скриптов из командной строки

Post by citRiks »

John Doe, Может все равно предоставить на суд общественности?
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
John Doe
Бюрократ
Posts: 12982
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 40 times
Been thanked: 303 times

Lua shell — запуск lua/moon скриптов из командной строки

Post by John Doe »

Нецелесообразно.
Даже в законченном виде оно требует документации и примеров.
Документация (наполовину написанная) в процессе переделок стала не вполне актуальна.
С примерами аналогично - только часть была актуализирована.
https://t.me/FarManager — Telegram чат
citRiks
Posts: 1064
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 334 times
Been thanked: 53 times

Lua shell — запуск lua/moon скриптов из командной строки

Post by citRiks »

buniak_a_h wrote: Wed 02 Sep, 2020 18:43 Только один - да.
Строковый - нет.
Справедливости ради надо отметить что работает и со многими паметрами:

Code: Select all

-- some-script-1.lua:
local tbl_1, str_1, num_1 =  ...
far.Message(num_1, _filename)
------
lua:@some-script-1.lua {a = 111, b = 222, c = 333}, "some-str-param-1", 1234567
Правда, в Lua 5.1.5 есть для этого arg, а в ФАРовском LuaJit нет, что иногда подводит.
Ну наверное "так надо", и не очень принципиально, ныть по этому поводу не буду.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
buniak_a_h
Posts: 2258
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 134 times
Been thanked: 241 times
Contact:

Lua shell — запуск lua/moon скриптов из командной строки

Post by buniak_a_h »

citRiks wrote: Wed 16 Sep, 2020 17:27 работает и со многими паметрами
Прежде, чем ответить тогда, я проверил … Возможно, ошибся… Разделял аргументы пробелом, а надо было через запятуху писать.
citRiks wrote: Wed 16 Sep, 2020 17:27 в Lua 5.1.5 есть для этого arg,
Насчёт arg - не знаю. Вроде, select предоставляет полный инструменатарий для доступа к аргументам функции. От получения количества до получения аргумента по номеру
User avatar
John Doe
Бюрократ
Posts: 12982
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 40 times
Been thanked: 303 times

Lua shell — запуск lua/moon скриптов из командной строки

Post by John Doe »

citRiks wrote: Wed 16 Sep, 2020 17:27 Справедливости ради надо отметить что работает и со многими паметрами:
И это есть в справке, раздел "Работа из командной строки". Найдите подходящую тему для обсуждения (или новую создайте). Тут не надо.
Корни отсюда: viewtopic.php?p=120184#p120184

Сабжевый же скрипт изначально был создан для того чтобы предоставить возможность передачи параметров не таким "Lua-путём", а более привычным способом (разделяя параметры пробелами). Это тоже обсуждалось. Например тут: viewtopic.php?p=145800#p145800
https://t.me/FarManager — Telegram чат
Post Reply

Return to “Обсуждение макросов”