From 3407e84d53db9869e15f8a909d4fcc2a153579be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Mon, 10 Jan 2022 19:53:17 +0100 Subject: [PATCH] Homogenize scripts a little. --- src/main/scripts/bin/export.lua | 6 +-- src/main/scripts/bin/import.lua | 4 +- src/main/scripts/bin/redstone.lua | 57 +++++++++++++------------- src/main/scripts/bin/setup-network.lua | 4 +- 4 files changed, 36 insertions(+), 35 deletions(-) diff --git a/src/main/scripts/bin/export.lua b/src/main/scripts/bin/export.lua index d1a33235..be992083 100644 --- a/src/main/scripts/bin/export.lua +++ b/src/main/scripts/bin/export.lua @@ -4,11 +4,11 @@ local devices = require("devices") local device = devices:find("file_import_export") if not device then - io.write("A File Import/Export Card is required for this functionality.\n") - return + io.stderr:write("A File Import/Export Card is required for this functionality.\n") + os.exit(1) end -if not arg[1] then +if #arg == 0 then io.write("Usage: export.lua filename\n") os.exit(1) end diff --git a/src/main/scripts/bin/import.lua b/src/main/scripts/bin/import.lua index 204b9c62..dd911934 100644 --- a/src/main/scripts/bin/import.lua +++ b/src/main/scripts/bin/import.lua @@ -4,8 +4,8 @@ local devices = require("devices") local device = devices:find("file_import_export") if not device then - io.write("A File Import/Export Card is required for this functionality.\n") - return + io.stderr:write("A File Import/Export Card is required for this functionality.\n") + os.exit(1) end device:reset() diff --git a/src/main/scripts/bin/redstone.lua b/src/main/scripts/bin/redstone.lua index 73d9c37a..1f8abac6 100644 --- a/src/main/scripts/bin/redstone.lua +++ b/src/main/scripts/bin/redstone.lua @@ -1,38 +1,39 @@ #!/usr/bin/lua local devices = require('devices') - local rs = devices:find("redstone") + if not rs then - io.stderr:write("This program requires a Redstone Interface Card or Redstone Interface.\n") - return 1 + io.stderr:write("This program requires a Redstone Interface Block or Card.\n") + os.exit(1) end -local args = table.pack(...) -if #args == 0 then - io.write("Usage:\n") - io.write(" redstone []\n") - return +if #arg == 0 then + io.write("Usage: redstone.lua side [value]\n") + os.exit(1) end -if #args > 0 then - local side = string.lower(args[1]) - sides = {["up"]=true,["down"]=true,["north"]=true,["south"]=true,["west"]=true,["east"]=true, - ["front"]=true,["back"]=true,["left"]=true,["right"]=true} - if not sides[side] then - io.stderr:write("invalid side\n") - return - end - - local value = args[2] - if value then - if tonumber(value) then - value = tonumber(value) - else - value = ({["true"]=true,["on"]=true,["yes"]=true})[value] and 15 or 0 - end - rs:setRedstoneOutput(side, value) - end - io.write("in: " .. math.ceil(rs:getRedstoneInput(side)) .. "\n") - io.write("out: " .. math.ceil(rs:getRedstoneOutput(side)) .. "\n") +local function set_of(...) + local set = {} + for _, value in pairs(table.pack(...)) do + set[value] = true + end + return set end + +local side = string.lower(arg[1]) +local sides = set_of("up", "down", "north", "south", "west", "east", "front", "back", "left", "right") +if not sides[side] then + io.stderr:write("Invalid side argument.\n") + os.exit(1) +end + +local value = arg[2] +if value then + local on = set_of("true", "on", "yes") + value = tonumber(value) or on[value] and 15 or 0 + rs:setRedstoneOutput(side, value) +end + +io.write("in: " .. math.ceil(rs:getRedstoneInput(side)) .. "\n") +io.write("out: " .. math.ceil(rs:getRedstoneOutput(side)) .. "\n") diff --git a/src/main/scripts/bin/setup-network.lua b/src/main/scripts/bin/setup-network.lua index 49d805de..a0b33720 100644 --- a/src/main/scripts/bin/setup-network.lua +++ b/src/main/scripts/bin/setup-network.lua @@ -74,7 +74,7 @@ if dhcpServer == "y" or dhcpServer == "Y" then end if not dhcpRangeStart:match("%d+%.%d+%.%d+%.%d+") then - io.write("Invalid IP address format.") + io.stderr:write("Invalid IP address format.") else break end @@ -90,7 +90,7 @@ if dhcpServer == "y" or dhcpServer == "Y" then end if not dhcpRangeEnd:match("%d+%.%d+%.%d+%.%d+") then - io.write("Invalid IP address format.") + io.stderr:write("Invalid IP address format.") else break end