From b58697e05887eb8f2a2a99a5e8aa3b11beb7c9d5 Mon Sep 17 00:00:00 2001 From: Timofey Khoruzhii Date: Tue, 9 May 2023 01:22:14 +0300 Subject: [PATCH] add globals scripts --- assets/lua/global/cmake.lua | 29 +++++++++++++++++++++++++++ assets/lua/global/cmd.lua | 40 +++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 assets/lua/global/cmake.lua create mode 100644 assets/lua/global/cmd.lua diff --git a/assets/lua/global/cmake.lua b/assets/lua/global/cmake.lua new file mode 100644 index 0000000..a978ecf --- /dev/null +++ b/assets/lua/global/cmake.lua @@ -0,0 +1,29 @@ +local cmd = require("cmd") + +local cd = cmd.cd +local cmd = cmd.cmd + +local cmake = { + prepare = function() + cmd[[ +if [ -d "build" ]; then + rm -r "build" +fi +]] + cmd'mkdir build' + cd'build' + cmd'cmake ..' + end, + + build = function() + cd'build' + cmd'make -j' + end +} + +function cmake:all() + cmake.prepare() + cmake.build() +end + +return cmake diff --git a/assets/lua/global/cmd.lua b/assets/lua/global/cmd.lua new file mode 100644 index 0000000..20f613d --- /dev/null +++ b/assets/lua/global/cmd.lua @@ -0,0 +1,40 @@ +local function join(delimiter, list) + local result = "" + local len = #list + for i, v in ipairs(list) do + result = result .. tostring(v) + if i < len then + result = result .. tostring(delimiter) + end + end + return result +end + +local function quoted(str) + local escaped_str = string.gsub(str, '[\\"]', '\\%1') + return '"' .. escaped_str .. '"' +end + +local lfs = require("lfs") + +return { + cmd = function(cmd) + if type(cmd) == "string" then + cmd = {cmd} + end + + local cmd_line = table.concat(cmd, "\n") + for i, v in ipairs(cmd) do + cmd[i] = "\27[32m-> \27[0m" .. string.gsub(cmd[i], "\n", "\n\27[32m-> \27[0m") + end + local print_line = table.concat(cmd, "\n") + print(print_line) + return assert(os.execute("bash -e -c " .. quoted(cmd_line))) + end, + + + cd = function(path) + print("\27[32m-> \27[0mcd " .. path) + assert(lfs.chdir(path)) + end +}