From e780d7017e0f7ee96dcab52352e099133a80b4a6 Mon Sep 17 00:00:00 2001 From: hkc Date: Tue, 17 Oct 2023 19:10:09 +0300 Subject: [PATCH] Added random stuff I had laying around --- ccshow.lua | 17 +++++++++++++++++ custom-colors.lua | 21 +++++++++++++++++++++ n25.cpi | Bin 0 -> 23221 bytes runonchange.lua | 40 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 78 insertions(+) create mode 100644 ccshow.lua create mode 100644 custom-colors.lua create mode 100644 n25.cpi create mode 100644 runonchange.lua diff --git a/ccshow.lua b/ccshow.lua new file mode 100644 index 0000000..eadebdb --- /dev/null +++ b/ccshow.lua @@ -0,0 +1,17 @@ +local ccpi = require("ccpi") +local args = { ... } + +local terminal = term.current() +if args[1] == "-m" then + table.remove(args, 1) + terminal = peripheral.wrap(table.remove(args, 1)) +end + +local img, err = ccpi.load(args[1]) +if not img then + printError(err) + return +end + +terminal.clear() +ccpi.draw(img, 1, 1, terminal) diff --git a/custom-colors.lua b/custom-colors.lua new file mode 100644 index 0000000..942d10f --- /dev/null +++ b/custom-colors.lua @@ -0,0 +1,21 @@ +local customColors = { + [colors.white] = 0xEFEFEF, + [colors.orange] = 0xD99F82, + [colors.magenta] = 0x464A73, + [colors.lightBlue] = 0xA1D5E6, + [colors.yellow] = 0xE6CCA1, + [colors.lime] = 0x86BF8F, + [colors.pink] = 0xC98F8F, + [colors.gray] = 0x515151, + [colors.lightGray] = 0xA3A3A3, + [colors.cyan] = 0xC2F2F2, + [colors.blue] = 0x6699CC, + [colors.brown] = 0x735F4B, + [colors.green] = 0x6DA18A, + [colors.red] = 0xBD555F, + [colors.black] = 0x131313 +} + +for id, color in pairs(customColors) do + term.setPaletteColor(id, color) +end diff --git a/n25.cpi b/n25.cpi new file mode 100644 index 0000000000000000000000000000000000000000..4353ff96bf3037b8bde80c154ef3e30c94ed9d1e GIT binary patch literal 23221 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 Yo5-+IMb*W589Y<8->9eOi 0 do + local name = table.remove(args, 1) + if name == "--" then break end + modtimes[name] = -1 +end + +if #args == 0 then + printError("No executable was given") + return +end + +while true do + local shall_run = false + for name, modtime in pairs(modtimes) do + local modtime_new = fs.attributes(name).modified + if modtime_new ~= modtime then + shall_run = true + modtimes[name] = modtime_new + print(name .. " was modified") + end + end + if shall_run then + local succ, err = pcall(shell.run, table.unpack(args)) + if succ then + print("Process finished successfully") + else + printError("Process crashed: " .. err) + end + end + os.sleep(0.5) +end