dotfiles/.local/bin/ecop
2025-05-29 23:15:07 +02:00

54 lines
1,003 B
Lua

#!/usr/bin/env lua
local args = {...}
local tmpfile = os.tmpname()
local cmd = table.concat(args, " ")
-- run the command and write its output to tmpfile
local ok = false
local output = ""
do
local f = io.popen(cmd, "r")
if f then
output = f:read("*a")
f:close()
local outFile = io.open(tmpfile, "w")
if outFile then
outFile:write(output)
outFile:close()
end
ok = true
end
end
if ok then
local session = os.getenv("XDG_SESSION_TYPE")
if session == "wayland" then
local f = io.popen("wl-copy", "w")
if f then
f:write(output)
f:close()
end
elseif session == "x11" then
local f = io.popen("xclip -selection clipboard", "w")
if f then
f:write(output)
f:close()
end
else
io.stderr:write("UNKNOWN SESSION TYPE!! >> " .. tostring(session) .. "\n")
os.remove(tmpfile)
os.exit(1)
end
print(output)
os.remove(tmpfile)
os.exit(0)
else
print(output)
os.remove(tmpfile)
os.exit(1)
end