X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/f914e6411e53186843ad628e321d6ada2f128466..1d2f4a102ed4fe4c536a76d03b91c19001f48ec6:/helpers.lua diff --git a/helpers.lua b/helpers.lua index 4e5ce1f..ce65576 100644 --- a/helpers.lua +++ b/helpers.lua @@ -1,13 +1,11 @@ - --[[ - - Licensed under GNU General Public License v2 - * (c) 2013, Luke Bonham - ---]] + Licensed under GNU General Public License v2 + * (c) 2013, Luke Bonham + +--]] -local easy_async = require("awful.spawn").easy_async +local spawn = require("awful.spawn") local timer = require("gears.timer") local debug = require("debug") local io = { lines = io.lines, @@ -112,7 +110,15 @@ end -- @param callback function to execute on cmd output -- @return cmd PID function helpers.async(cmd, callback) - return easy_async(cmd, + return spawn.easy_async(cmd, + function (stdout, stderr, reason, exit_code) + callback(stdout) + end) +end + +-- like above, but call spawn.easy_async with a shell +function helpers.async_with_shell(cmd, callback) + return spawn.easy_async_with_shell(cmd, function (stdout, stderr, reason, exit_code) callback(stdout) end) @@ -164,6 +170,29 @@ function helpers.spairs(t) end end +-- create trivial partition of a set. The trivial partition set is the simplest +-- partition of a set. For e.g., the trivial partition set of {a, b, c}, is +-- simply {{a}, {b}, {c}}. +function helpers.trivial_partition_set(set) + local ss = {} + for _,e in pairs(set) do + ss[#ss+1] = {e} + end + return ss +end + +-- creates the powerset of a given set +function helpers.powerset(s) + if not s then return {} end + local t = {{}} + for i = 1, #s do + for j = 1, #t do + t[#t+1] = {s[i],unpack(t[j])} + end + end + return t +end + -- }}} return helpers