Думаю для лучшего изучения DreamShell lua скриптов, можно кидать исходники своих скриптов на форуме, так на примерах будет лучше понять:)
Я вот начал уже обновлять CMD Path, сделал одну новую команду, она может конвертировать файл браузера DK или DP в обычный файл, чтобы можно было его использовать в DS(например скрипты). Так же комнда может сразу запускать скрипты из файлов браузера, перед тем сама сконвертировав его.
Ну вообщем вот сам исходник:
Код:
-- DK/DP VMU files manager v1.6
-- Created by SWAT
-- http://www.dc-swat.net.ru
-- dc-swat@nm.ru
-- Usage: lua bfm.lua -flag infile.lua outfile.lua(if needed)
if argv.n < 2 then
print("Usage: bfm -flag file_in file_out(if needed)")
print("Flags:")
print(" -c -Convert DK or DP VMU file to normal file")
print(" -rl -Run lua script from DK or DP VMU file")
print(" -rd -Run dscript from DK or DP VMU file")
return
end
function dpf_convert(filein, fileout)
local buff
local fin = assert(io.open(filein,"r"))
fin:seek(set, 704)
local type = fin:read(5)
if type == "From:" then
fin:seek(cur, 101)
buff = fin:read("*a")
end
if type ~= "From:" then
fin:seek(cur, -5)
buff = fin:read("*a")
end
io.close(fin)
local fout = assert(io.open(fileout,"w"))
fout:write(buff)
io.close(fout)
end
-- DS.makeabspath(fnin, argv[2], 256);
fnin = argv[2]
if argv[1] == "-c" then
-- DS.makeabspath(fnout, argv[3], 256);
fnout = argv[3]
dpf_convert(fnin, fnout)
return
end
if argv[1] == "-rl" then
dpf_convert(argv[2], "/ram/bf_temp_file___.lua")
DS.ds_exec_one("lua /ram/bf_temp_file___.lua");
DS.ds_exec_one("rm /ram/bf_temp_file___.lua");
return
end
if argv[1] == "-rd" then
dpf_convert(argv[2], "/ram/bf_temp_file___.dsc")
DS.ds_exec_one("dscript /ram/bf_temp_file___.dsc");
DS.ds_exec_one("rm /ram/bf_temp_file___.dsc");
return
end
Причем данный скрипт использует стандартные функции для работы с файлами lua 5... Хоть я интегрировал туда и KOS и стандартные Си функции работы с файлами, думаю нет необходимости писать лишнее если можно это было сделать и со стандартными:)
Да и кстати, прошу заметить коментарии сверху скрипта, в скрипте должен быть хотябы один коментарий в самом верху файла! Когда DreamShell определяет из чего сделана команда(а она может быть dscript, lua и bin) она заглядывает в нутрь файла и определяет что это. Так же в случае и с DScript, у него тоже должен быть комментарий сверху, только он там обозначается символом решетки - #
Надеюсь появятся люди которые будут поддерживать DreamShell все большим числом команд ;)Если что будет не понятно, я обязательно помогу!
И еще, советую использовать редактор lua скриптов для подсветки синтаксиса, так будет полегче:)Есть один хороший, которым я пользуюсь, называется LuaEdit скачать его мона на сайте
http://luaedit.luaforge.net/