Библиотеки, бинарники и "path" #1

Closed
opened 2026-07-13 16:47:33 +00:00 by h1n1 · 4 comments
Owner

Есть встроенная команда shell.path():

lua> shell.path()
".:/rom/programs:/rom/programs/http:<...>:/rom/programs/advanced"

По этому списку система сверяется и ищет где расположены программы которые можно запустить прямо из консоли.

Чуть позже надо бы написать в сам startup.lua проверку этого path, чтобы там была папка /bin.

По поводу библиотек, есть модуль settings и ее настройка shell.package_path, у которой строка по типу "?;?.lua;?/init.lua" и тому подобное.
Неплохо бы пере-дефайнить и их.

Есть встроенная команда `shell.path()`: ``` lua> shell.path() ".:/rom/programs:/rom/programs/http:<...>:/rom/programs/advanced" ``` По этому списку система сверяется и ищет где расположены программы которые можно запустить прямо из консоли. Чуть позже надо бы написать в сам `startup.lua` проверку этого `path`, чтобы там была папка `/bin`. По поводу библиотек, есть модуль `settings` и ее настройка `shell.package_path`, у которой строка по типу `"?;?.lua;?/init.lua"` и тому подобное. Неплохо бы пере-дефайнить и их.
h1n1 added the
type
feature
label 2026-07-13 16:51:00 +00:00
Author
Owner

shell.package_path доступен только у CraftOS-PC, так что увы, придётся в require писать полностью путь до библиотеки, например:

require("/lib/somelib")
`shell.package_path` доступен только у CraftOS-PC, так что увы, придётся в `require` писать *полностью* путь до библиотеки, например: ```lua require("/lib/somelib") ```

что если написать свою реализацию require?
вроде как в CC (и в Lua впринципе) можно заменять глобальные переменные...
также, в loadfile можно заюзать таблицу заменяющую _G, и туда уже засунуть кастомный require

что если написать свою реализацию `require`? вроде как в CC (и в Lua впринципе) можно заменять глобальные переменные... также, в `loadfile` можно заюзать таблицу заменяющую _G, и туда уже засунуть кастомный `require`
Author
Owner

что если написать свою реализацию require?
вроде как в CC (и в Lua впринципе) можно заменять глобальные переменные...

Ну я попробовал в startup.lua написать простейшую функцию и заменить ею require...
Ожидаемо, не работает.

> что если написать свою реализацию `require`? > вроде как в CC (и в Lua впринципе) можно заменять глобальные переменные... Ну я попробовал в `startup.lua` написать простейшую функцию и заменить ею require... Ожидаемо, не работает.
h1n1 started working 2026-07-26 10:48:08 +00:00
h1n1 worked for 3 seconds 2026-07-26 10:48:11 +00:00
h1n1 deleted spent time 2026-07-26 10:48:19 +00:00
- 3 seconds
Author
Owner

Сделал коммит связанный с /bin: 4d67656505

Я ранее попытался запихнуть добавление /bin в PATH в отдельный бут-скрипт, но почему то там орало что недоступен shell (он равен nil).

Крайне странно. Пока что пришлось сделать его внутри startup.lua.

И учитывая что я не вижу альтернативных решений по поводу библиотек, я закрываю задачу.

Сделал коммит связанный с /bin: https://gitea.qioh1n1.ru/h1n1/hcf/commit/4d6765650574e1760c1b0244cec460326bf0b9bf Я ранее попытался запихнуть добавление /bin в PATH в отдельный бут-скрипт, но почему то там орало что недоступен shell (он равен nil). Крайне странно. Пока что пришлось сделать его внутри startup.lua. И учитывая что я не вижу альтернативных решений по поводу библиотек, я закрываю задачу.
h1n1 closed this issue 2026-07-26 11:37:04 +00:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: h1n1/hcf#1