From 3abb18195f0629171fab550479e6370524fa873f Mon Sep 17 00:00:00 2001 From: Guillaume ARM Date: Mon, 18 Jul 2022 23:28:17 +0200 Subject: [PATCH] feat: rename set-startup command in set-boot --- .gitignore | 1 + README.md | 2 +- install.lua | 2 +- programs/cube.lua | 73 +++++++++++++-------- servers/{cube-startup.lua => cube-boot.lua} | 6 +- servers/cube-server.lua | 10 +-- startup/servers.lua | 2 +- 7 files changed, 57 insertions(+), 39 deletions(-) rename servers/{cube-startup.lua => cube-boot.lua} (66%) diff --git a/.gitignore b/.gitignore index 2f23470..d73230c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .cuberc .cubestartup +.cubeboot diff --git a/README.md b/README.md index 47b0544..dc0fe9c 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ All servers are automatically started at boot - `/servers/ping-server`: allow a machine to respond to a `ping` command. - `/servers/cube-server`: allow a machine to be controllable via `cube`. -- `/servers/cube-startup.lua`: `cube` startup script. +- `/servers/cube-boot.lua`: `cube` boot script. ## Programs - `router`: route messages (you need to setup a router to be able to use all `apis/net` based programs and libs) diff --git a/install.lua b/install.lua index 555acdb..7ff1ab9 100644 --- a/install.lua +++ b/install.lua @@ -6,7 +6,7 @@ local LIST_FILES = { -- servers 'servers/ping-server.lua', 'servers/cube-server.lua', - 'servers/cube-startup.lua', + 'servers/cube-boot.lua', -- programs 'programs/router.lua', -- router is not in servers folder because he's not ran on every machines 'programs/ping.lua', diff --git a/programs/cube.lua b/programs/cube.lua index c01553f..136d6a8 100644 --- a/programs/cube.lua +++ b/programs/cube.lua @@ -1,4 +1,4 @@ -local _VERSION = '1.4.0'; +local _VERSION = '2.0.0'; local CUBE_CHANNEL = 64; local net = require('/apis/net')(); @@ -42,7 +42,7 @@ local function printUsage() print(); print('\t\t\tcube ls'); print('\t\t\tcube configure'); - print('\t\t\tcube set-startup [command]') + print('\t\t\tcube set-boot [command]') print('\t\t\tcube reboot ') print('\t\t\tcube deploy') print('\t\t\tcube version') @@ -50,6 +50,11 @@ local function printUsage() end local function printUsageCommand(commandName) + local function setBootUsage() + print('\t\t\tcube set-boot [command]') + print('Setup a startup shell command on a remote cube.') + end + local USAGES = { ls = function() print('\t\t\tcube ls'); @@ -59,10 +64,12 @@ local function printUsageCommand(commandName) print('\t\t\tcube configure'); print('Setup remote slave cubes.') end, - ["set-startup"] = function() - print('\t\t\tcube set-startup [command]') - print('Setup a startup shell command on a remote cube.') - end, + ["set-boot"] = setBootUsage, + ["setboot"] = setBootUsage, + ["set-start"] = setBootUsage, + ["setstart"] = setBootUsage, + ["set-startup"] = setBootUsage, + ["setstartup"] = setBootUsage, reboot = function() print('\t\t\tcube reboot ') print('Reboot a cube machine.'); @@ -110,7 +117,32 @@ local rebootCommand = function(machineId) for k in ipairs(results) do local packet = packets[k]; - print('reboot machine \'' .. tostring(packet.sourceId) .. '\'.'); + print('reboot machine \'' .. tostring(packet.sourceId) .. '\''); + end +end + +local setBootCommand = function(machineId, shellCommand) + if not machineId then + printUsageCommand('set-boot'); + return; + end + + local ok, results, packets = net.sendMultipleRequests(CUBE_CHANNEL, 'set-boot', shellCommand, machineId); + + if not ok then + error(results); + end + + for k in ipairs(results) do + local packet = packets[k]; + + if shellCommand == nil or shellCommand == '' then + print('boot DELETED'); + else + print('boot UPDATED'); + end + + rebootCommand(packet.sourceId); end end @@ -136,27 +168,12 @@ local COMMANDS = { configure = function() print('not implemented yet.'); end, - ["set-startup"] = function(machineId, shellCommand) - if not machineId then - printUsageCommand('set-startup'); - return; - end - - local ok, results, packets = net.sendMultipleRequests(CUBE_CHANNEL, 'set-startup', shellCommand, machineId); - - if not ok then - error(results); - end - - for k in ipairs(results) do - local packet = packets[k]; - - print('changed startup script on machine \'' .. - tostring(packet.sourceId) .. '\' by \'' .. tostring(shellCommand or '') .. '\''); - - rebootCommand(packet.sourceId); - end - end, + ["set-boot"] = setBootCommand, + ["setboot"] = setBootCommand, + ["set-start"] = setBootCommand, + ["setstart"] = setBootCommand, + ["set-startup"] = setBootCommand, + ["setstartup"] = setBootCommand, reboot = rebootCommand, deploy = function() print('not implemented yet.'); diff --git a/servers/cube-startup.lua b/servers/cube-boot.lua similarity index 66% rename from servers/cube-startup.lua rename to servers/cube-boot.lua index b9569ab..44f55a5 100644 --- a/servers/cube-startup.lua +++ b/servers/cube-boot.lua @@ -1,4 +1,4 @@ -local _VERSION = '1.1.0'; +local _VERSION = '2.0.0'; local function trim(s) return (string.gsub(s, "^%s*(.-)%s*$", "%1")) @@ -17,11 +17,11 @@ local function readFile(path) return contents end -local startupCommand = trim(readFile('.cubestartup') or readFile('.cubestart') or ""); +local startupCommand = trim(readFile('.cubeboot') or ""); if startupCommand ~= "" then - print('cube-startup v' .. _VERSION .. ': execute \'' .. startupCommand .. '\'...'); + print('cube-boot v' .. _VERSION .. ': execute \'' .. startupCommand .. '\'...'); shell.run(startupCommand); else print('cube-startup v' .. _VERSION .. ' no startup command detected.') diff --git a/servers/cube-server.lua b/servers/cube-server.lua index 90d6544..186fc13 100644 --- a/servers/cube-server.lua +++ b/servers/cube-server.lua @@ -1,4 +1,4 @@ -local _VERSION = '1.0.0'; +local _VERSION = '2.0.0'; local net = require('/apis/net')(); @@ -35,7 +35,7 @@ local function writeFile(path, content) end local function getStartupCommand() - return trim(readFile('.cubestartup') or "") + return trim(readFile('.cubeboot') or "") end -- ping event @@ -54,9 +54,9 @@ net.listenRequest(CUBE_CHANNEL, "reboot", function(_, reply) end, 0.1); end) --- set-startup event -net.listenRequest(CUBE_CHANNEL, "set-startup", function(startupCommand, reply) - local res = writeFile('/.cubestartup', startupCommand); +-- set-boot event +net.listenRequest(CUBE_CHANNEL, "set-boot", function(startupCommand, reply) + local res = writeFile('/.cubeboot', startupCommand); reply(res); end) diff --git a/startup/servers.lua b/startup/servers.lua index 055d5b5..7f6c03d 100644 --- a/startup/servers.lua +++ b/startup/servers.lua @@ -3,7 +3,7 @@ local _VERSION = '1.1.1' local SERVERS = { "servers/ping-server", "servers/cube-server.lua", - "servers/cube-startup.lua", + "servers/cube-boot.lua", }; local function init()