cc-libs/packages/trapos-core/programs/trapos-postinstall.lua

77 lines
1.9 KiB
Lua

local createVersion = require('/apis/libversion');
local DEFAULT_CLOUD_URL = 'wss://os.trapcloud.fr';
local CLOUD_URL_SETTING = 'cloud.url';
local CLOUD_PASSWORD_SETTING = 'cloud.password';
local function isBlank(value)
return type(value) ~= 'string' or value == '';
end
local function printUsage()
print('trapos-postinstall usage:');
print();
print('\t\ttrapos-postinstall');
print('\t\ttrapos-postinstall version');
print('\t\ttrapos-postinstall help');
end
local command = ...;
if command == 'version' or command == '-version' or command == '--version' then
print('v' .. createVersion().forSelf());
return;
end
if command == 'help' or command == '-help' or command == '--help' then
printUsage();
return;
end
if command ~= nil and command ~= '' then
printUsage();
return;
end
local function readManifestVersion()
if not fs.exists('/trapos/manifest.json') then return nil; end
local f = fs.open('/trapos/manifest.json', 'r');
if not f then return nil; end
local data = f.readAll();
f.close();
local manifest = data and textutils.unserializeJSON(data);
return manifest and manifest.version or nil;
end
local version = readManifestVersion();
local configuredCloudUrl = false;
if isBlank(settings.get(CLOUD_URL_SETTING)) then
shell.run('set', CLOUD_URL_SETTING, DEFAULT_CLOUD_URL);
configuredCloudUrl = true;
end
local hasCloudPassword = not isBlank(settings.get(CLOUD_PASSWORD_SETTING));
print();
if version then
print('=> TrapOS v' .. version .. ' installed.');
else
print('=> TrapOS installed.');
end
if configuredCloudUrl then
print('=> Configured cloud.url to ' .. DEFAULT_CLOUD_URL .. '.');
else
print('=> Keeping existing cloud.url.');
end
if hasCloudPassword then
print('=> Cloud password already configured.');
else
print('=> Cloud password not set.');
end
print();
print('Get started:');
print(' cloud --help -- open the cloud help');
print(' trapos-upgrade -- update and upgrade TrapOS');
print();