dotfiles/scripts/sysupdate

47 lines
1.1 KiB
Lua
Executable file

#!/usr/bin/env lua
local function run(cmd)
-- check if the command exists
local pname = cmd:gmatch("%S+")()
local handle = io.popen("which " .. pname .. " 2> /dev/null")
handle:read("*a")
_, _, exit_code = handle:close()
if exit_code == 0 then
-- 8 is len of text around "running" prompt
local len = #cmd + 8
local hr = string.rep("=", len)
print(
string.format(
"%s\nrunning \27[32m%s\27[0m\n%s\n",
hr,
cmd,
hr
)
)
os.execute(cmd)
else
print("\27[31mCouldn't find process with name " .. pname .. "\27[0m in path.")
end
end
-- commands that require interaction
local function run_fg()
run [[nvim '+:PackerSync' '+:CocUpdate' '+:TSUpdate']]
end
-- commands that require no interaction
local function run_bg(args)
run [[paru -Syu --noconfirm]]
run [[rustup update]]
run [[fw sync]]
end
-- if "bg" was passed as argument, only run uninteractive commands
if arg[1] ~= "bg" then
run_fg()
end
run_bg()