a67a8a40f3
Написал алгоритм сжатия совместимый с UTF-8. Не очень эффективный, экономит 10-15% на тексте. Добавил генератор стартовой памяти, убран хардкод из MMC
141 lines
2.9 KiB
Lua
141 lines
2.9 KiB
Lua
-- generate_init_fs.lua
|
|
-- Генерирует начальный образ SEG0 с man-страницами в /etc/man/
|
|
-- Использует экспортированное FS API из MMC.lua
|
|
-- Запуск: lua tools/generate_init_fs.lua > tools/init.amem
|
|
|
|
local base = arg and arg[0] and arg[0]:match("(.+)/") or "."
|
|
dofile(base .. "/../MMC.lua")
|
|
|
|
FS.init()
|
|
|
|
FS.addUser(0, "root", 0, "/", "-")
|
|
FS.addUser(100, "captain", 10, "/home/captain", "-")
|
|
|
|
FS.mkdir("/home", "755", 0, 0)
|
|
FS.mkdir("/home/captain", "700", 100, 10)
|
|
FS.mkfile("/home/captain/readme.txt", "Welcome to AtlasOS v2.0!\n", "644", 100, 10)
|
|
FS.mkdir("/etc", "755", 0, 0)
|
|
FS.mkdir("/etc/man", "755", 0, 0)
|
|
|
|
FS.mkfile("/etc/man/help", [[NAME
|
|
help - display help information
|
|
|
|
SYNOPSIS
|
|
help
|
|
|
|
DESCRIPTION
|
|
Show a list of all available commands with their usage
|
|
and description.
|
|
]], "644", 0, 0)
|
|
|
|
FS.mkfile("/etc/man/echo", [[NAME
|
|
echo - display a line of text
|
|
|
|
SYNOPSIS
|
|
echo <text>
|
|
|
|
DESCRIPTION
|
|
Write the given text to the terminal output.
|
|
]], "644", 0, 0)
|
|
|
|
FS.mkfile("/etc/man/clear", [[NAME
|
|
clear - clear the terminal screen
|
|
|
|
SYNOPSIS
|
|
clear
|
|
|
|
DESCRIPTION
|
|
Clear all text from the terminal display.
|
|
]], "644", 0, 0)
|
|
|
|
FS.mkfile("/etc/man/color", [[NAME
|
|
color - set terminal text color
|
|
|
|
SYNOPSIS
|
|
color <R> <G> <B>
|
|
|
|
DESCRIPTION
|
|
Change the text color for subsequent output.
|
|
Each value must be 0-255 (red, green, blue).
|
|
]], "644", 0, 0)
|
|
|
|
FS.mkfile("/etc/man/status", [[NAME
|
|
status - show system status
|
|
|
|
SYNOPSIS
|
|
status
|
|
|
|
DESCRIPTION
|
|
Display system information including current user,
|
|
working directory, and memory usage.
|
|
]], "644", 0, 0)
|
|
|
|
FS.mkfile("/etc/man/ls", [[NAME
|
|
ls - list directory contents
|
|
|
|
SYNOPSIS
|
|
ls [-la] [path]
|
|
|
|
DESCRIPTION
|
|
List contents of a directory. If no path is given,
|
|
list the current directory.
|
|
|
|
OPTIONS
|
|
-a Include hidden entries (. and ..)
|
|
-l Long format (detailed listing)
|
|
]], "644", 0, 0)
|
|
|
|
FS.mkfile("/etc/man/cat", [[NAME
|
|
cat - concatenate and display files
|
|
|
|
SYNOPSIS
|
|
cat <path>
|
|
|
|
DESCRIPTION
|
|
Read a file and display its contents on the terminal.
|
|
]], "644", 0, 0)
|
|
|
|
FS.mkfile("/etc/man/cd", [[NAME
|
|
cd - change the working directory
|
|
|
|
SYNOPSIS
|
|
cd [path]
|
|
|
|
DESCRIPTION
|
|
Change the current working directory. If no path
|
|
is given, go to root (/). Supports both absolute
|
|
and relative paths.
|
|
]], "644", 0, 0)
|
|
|
|
FS.mkfile("/etc/man/stat", [[NAME
|
|
stat - show file metadata
|
|
|
|
SYNOPSIS
|
|
stat <path>
|
|
|
|
DESCRIPTION
|
|
Display metadata for a file or directory, including
|
|
inode number, type, permissions, owner, group, size,
|
|
and modification time.
|
|
]], "644", 0, 0)
|
|
|
|
FS.mkfile("/etc/man/man", [[NAME
|
|
man - display manual page
|
|
|
|
SYNOPSIS
|
|
man <command>
|
|
|
|
DESCRIPTION
|
|
Display the manual page for a command. Manual pages
|
|
are stored in /etc/man/.
|
|
|
|
EXAMPLE
|
|
man ls
|
|
man cat
|
|
|
|
SEE ALSO
|
|
help
|
|
]], "644", 0, 0)
|
|
|
|
print(FS.serialize())
|