diff --git a/Applications/archive.lua b/Applications/archive.lua index 19fc4e29..d6642674 100644 --- a/Applications/archive.lua +++ b/Applications/archive.lua @@ -1,31 +1,67 @@ local archive = require("lib/archive") +local shell = require("shell") ------------------------------------------------------------------------------------------------------------------------------------ -local args = {...} +local args, options = shell.parse(...) -archive.debugMode = true +if not options.q then + archive.debugMode = true +end + +local function debug(text) + if not options.q then print(text) end +end if args[1] == "pack" then if not args[2] or not args[3] then - print(" ") - print("Использование: archive pack <имя архива> <архивируемая папка>") - print(" ") + debug(" ") + debug("Использование: archive pack <имя архива> <архивируемая папка>") + debug(" ") return end + debug(" ") + debug("Упаковка пакета начата") + debug(" ") archive.pack(args[2], args[3]) + debug(" ") + debug("Упаковка пакета завершена, файл сохранен как \"" .. args[2] .. "\", его размер составил " .. math.ceil(fs.size(args[2]) / 1024) .. "КБ") + debug(" ") elseif args[1] == "unpack" then if not args[2] or not args[3] then - print(" ") - print("Использование: archive unpack <путь к архиву> <папка для сохранения файлов>") - print(" ") + debug(" ") + debug("Использование: archive unpack <путь к архиву> <папка для сохранения файлов>") + debug(" ") return end + debug(" ") + debug("Распаковка пакета начата") + debug(" ") archive.unpack(args[2], args[3]) + debug(" ") + debug("Распаковка пакета \"" .. args[2] .. "\" завершена") + debug(" ") +elseif args[1] == "download" or args[1] == "get" then + if not args[2] or not args[3] then + debug(" ") + debug("Использование: archive download <папка для сохранения файлов>") + debug(" ") + return + end + debug(" ") + debug("Загрузка файла по ссылке \"" .. args[2] .. "\"") + shell.execute("wget " .. args[2] .. " TempFile.pkg -fq") + debug(" ") + debug("Распаковка загруженного пакета") + archive.unpack("TempFile.pkg", args[3]) + shell.execute("rm TempFile.pkg") + debug(" ") + debug("Пакет \"" .. args[2] .. "\" был успешно загружен и распакован") + debug(" ") else - print(" ") - print("Использование: archive <имя архива/путь к архиву> <архивируемая папка/папка для сохранения файлов>") - print(" ") + debug(" ") + debug("Использование: archive ...") + debug(" ") return end diff --git a/lib/archive.lua b/lib/archive.lua index 77ab355c..d5ea2426 100644 --- a/lib/archive.lua +++ b/lib/archive.lua @@ -40,25 +40,15 @@ end ------------------------------------------------------------------------------------------------------------------------------------ function package.pack(whereToSavePackedPackage, pathThatContainsFilesToPack) - debug(" ") - debug("Упаковка пакета начата") - debug(" ") local packageFileStream = io.open(whereToSavePackedPackage, "w") packageFileStream:write(packageSignature, "\n") doPack(packageFileStream, pathThatContainsFilesToPack .. "/", "", whereToSavePackedPackage) packageFileStream:close() - debug(" ") - debug("Упаковка пакета завершена, файл сохранен как \"" .. whereToSavePackedPackage .. "\", его размер составил " .. math.ceil(fs.size(whereToSavePackedPackage) / 1024) .. "КБ") - debug(" ") end function package.unpack(pathToPackedPackage, whereToSaveUnpackedFiles) - debug(" ") - debug("Распаковка пакета начата") - debug(" ") - fs.makeDirectory(whereToSaveUnpackedFiles) local packageFileStream = io.open(pathToPackedPackage, "r") @@ -87,9 +77,6 @@ function package.unpack(pathToPackedPackage, whereToSaveUnpackedFiles) end packageFileStream:close() - debug(" ") - debug("Распаковка пакета \"" .. pathToPackedPackage .. "\" завершена") - debug(" ") end ------------------------------------------------------------------------------------------------------------------------------------