24 lines
486 B
Plaintext
24 lines
486 B
Plaintext
quote = (str) ->
|
|
escaped = str\gsub "'", [['"'"']]
|
|
return "'#{escaped}'"
|
|
|
|
execute = (cmd, capture_exit_code=true) ->
|
|
local handle
|
|
if capture_exit_code
|
|
handle = io.popen "#{cmd}\necho $?"
|
|
else
|
|
handle = io.popen cmd
|
|
result = handle\read "*a"
|
|
handle\close!
|
|
|
|
exit_start, exit_end = result\find "(%d*)[%c]$"
|
|
exit_code = tonumber result\sub(exit_start, exit_end)\sub 1, -2
|
|
output = result\sub 1, exit_start - 1
|
|
|
|
return exit_code, output
|
|
|
|
{
|
|
:quote
|
|
:execute
|
|
}
|