Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local component = require("component")
- local computer = require("computer")
- local term = require("term")
- local unicode = require("unicode")
- local event = require("event")
- local fs = require("filesystem")
- local internet = require("internet")
- local cinternet = component.internet
- local keyboard = require("keyboard")
- local gpu = component.gpu
- local HDDs
- term.clear()
- -----------------Проверка компа на соответствие сис. требованиям--------------------------
- local checkSystem = {}
- print("1 шаг: Подготовка к установке MineTable 32bit...")
- print(" ")
- print("Проверка системы под нужные требования...")
- --Проверяем GPU
- if gpu.maxResolution() < 80 then table.insert(checkSystem, "Для установки 32 битной версии системы нужен экран и видеокарту минимум 2 уровня.") end
- --Проверяем оперативку
- if math.floor(computer.totalMemory() / 1024 ) < 768 then table.insert(checkSystem, "Недостаточно оперативной памяти - MineTable 32 бит необходимо минимум 768 кб") end
- --Проверяем не устанавливаем мы MineTable на дискету
- if fs.get("bin/shutdown.lua") == nil or fs.get("bin/shutdown.lua").isReadOnly() then table.insert(checkSystem, "Вы не можеет установить MineTable на дискету. Необходимо сначало установить OpenOS с дискеты. После повторите установку.") end
- if cinternet.isHttpEnabled() == true then else table.insert(checkSystem, "Для установки MineTable нужна интернет карта.") end
- --Если нашло какое-то несоответствие сис. требованиям, то написать, что именно не так
- if #checkSystem > 0 then
- print(" ")
- for i = 1, #checkSystem do
- print(checkSystem[i])
- end
- print(" ")
- print("Возвращаюсь в шелл...")
- return
- else
- print(" ")
- print("Эта система подходит минимальным системным требованиям.")
- print(" ")
- print(" ")
- print("Нажмите любую клавишу чтобы перейти к следущему шагу... ")
- while true do
- local e = { event.pull() }
- if e[1] == "key_down" or e[1] == "touch" then
- break
- end
- end
- end
- ------------------------------ЛИЦ. СОГЛАШЕНИЕ------------------------------------------
- term.clear()
- print("2 шаг: Лицензионное соглашение")
- print(" ")
- print("Внимательно прочтите условия данного лицензионного соглашения перед установкой операционной системы.")
- print(" ")
- print("Нажимая кнопку \"Y\", Вы соглашаетесь с нижеследующим: ")
- print(" ")
- print(" ")
- print("<--Лицензионное соглашение-->")
- print(" ")
- print("● Вы обязуетесь помнить, что Эмиль пидарас.")
- print(" ")
- print("● Вы принимаете тот факт, что автор ОС не несет юридической")
- print(" ответственности за любой физический и моральный ущерб,")
- print(" который Вы можете понести, используя данную ОС.")
- print(" ")
- print("● В случае несогласия с любым из вышеперечисленных пунктов,")
- print(" Вы обязаны нажать \"N\".")
- print(" ")
- print("<--Лицензионное соглашение-->")
- print(" ")
- print(" ")
- print(" ")
- print(" ")
- print("Вы принимаете условия лицензионного соглашения [Y/N]?")
- while true do
- local e = { event.pull() }
- if keyboard.isKeyDown("y") then
- term.clear()
- break
- elseif keyboard.isKeyDown("n") then
- term.clear()
- error("Licence decline")
- end
- end
- --------------------------СТАДИЯ ЗАКАЧКИ ОС-----------------------------------
- -------------------------------------------------------
- local GitHubUserUrl = "https://raw.githubusercontent.com/TheRioMiner/"
- -------------------------------------------------------
- --ЗАГРУЗОЧКА С ГИТХАБА
- local function getFromGitHub(url, path)
- local sContent = ""
- local result, response = pcall(internet.request, url)
- if not result then
- return nil
- end
- if fs.exists(path) then fs.remove(path) end
- fs.makeDirectory(fs.path(path))
- local file = io.open(path, "w")
- for chunk in response do
- file:write(chunk)
- sContent = sContent .. chunk
- end
- file:close()
- return sContent
- end
- --БЕЗОПАСНАЯ ЗАГРУЗКА
- local function getFromGitHubSafely(url, path)
- local success, sRepos = pcall(getFromGitHub, url, path)
- if not success then
- error("Невозможно загрузить \"" .. url .. "\"!\n", 0)
- end
- return sRepos
- end
- -------------------------- Подготавливаем файловую систему ----------------------------------
- --Создаем стартовые пути и прочие мелочи чисто для эстетики
- local desktopPath = "MineTable/Desktop/"
- local picturesPath = "MineTable/Documents/Pictures"
- fs.makeDirectory(desktopPath .. "My files")
- fs.makeDirectory(picturesPath)
- ---------------------------------------------------------------------------------------------
- local filesToDownload = {
- { paste = "OpenComputers/master/MineTableInstaller32bit/lib/ECSAPI.lua", path = "lib/ECSAPI.lua" },
- { paste = "OpenComputers/master/MineTableInstaller32bit/lib/GUI.lua", path = "lib/GUI.lua" },
- { paste = "OpenComputers/master/MineTableInstaller32bit/lib/doubleBuffering.lua", path = "lib/doubleBuffering.lua" },
- { paste = "OpenComputers/master/MineTableInstaller32bit/lib/image.lua", path = "lib/image.lua" },
- { paste = "OpenComputers/master/MineTableInstaller32bit/lib/advancedLua.lua", path = "lib/advancedLua.lua" },
- { paste = "OpenComputers/master/MineTableInstaller32bit/lib/filemanager.lua", path = "lib/filemanager.lua" },
- { paste = "OpenComputers/master/MineTableInstaller32bit/lib/files.lua", path = "lib/files.lua" },
- { paste = "OpenComputers/master/MineTableInstaller32bit/lib/bit32.lua", path = "lib/bit32.lua" },
- { paste = "OpenComputers/master/MineTableInstaller32bit/lib/context.lua", path = "lib/context.lua" },
- { paste = "OpenComputers/master/MineTableInstaller32bit/lib/colorlib.lua", path = "lib/colorlib.lua" },
- { paste = "OpenComputers/master/MineTableInstaller32bit/etc/motd", path = "etc/motd" },
- { paste = "OpenComputers/master/MineTableInstaller32bit/bin/emil.lua", path = "bin/emil.lua" },
- { paste = "OpenComputers/master/MineTableInstaller32bit/autorun.lua", path = "autorun.lua" },
- { paste = "OpenComputers/master/MineTableInstaller32bit/OS.lua", path = "OS.lua" },
- { paste = "OpenComputers/master/MineTableInstaller32bit/init.lua", path = "init.lua" },
- }
- term.clear()
- print("3 шаг: Начинаю скачивание файлов системы...")
- print(" ")
- os.sleep(1)
- for i = 1, #filesToDownload do
- print("Загрузка " .. fs.name(filesToDownload[i].path) .. "...")
- getFromGitHubSafely(GitHubUserUrl .. filesToDownload[i].paste, filesToDownload[i].path)
- end
- os.sleep(1)
- term.clear()
- print("Файлы системы успешно установлены!")
- os.sleep(0.5)
- -------------------------Стадия перезагрузки------------------------------
- term.clear()
- print("4 шаг: MineTable 32bit успешно установлена на ваш компьютер!")
- print(" ")
- print("Компьютер необходимо перезагрузить.")
- print(" ")
- print(" ")
- print("Перезагрузить компьютер [Y/N]?")
- while true do
- local e = { event.pull() }
- if keyboard.isKeyDown("y") then
- term.clear()
- print("Перезагрузка...")
- os.sleep(1)
- computer.shutdown(true)
- elseif keyboard.isKeyDown("n") then
- term.clear()
- print("Возвращаюсь в шелл...")
- os.sleep(1)
- term.clear()
- break
- end
- end
- --Конец всего дерьмица
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement