not my autorun.lua

is runonce.lua

2012/6/12 Leiking <jinleileik...@gmail.com>:
> i.e :
>
>
>    "for m in vbox{drv,netadp,netflt}; do modprobe $m; done",
>
> my rc.lua:
>
> local r = require("runonce")
>
> autorun_items =
> {
>    "terminator",
>    --"VBoxClient-all",
>    "gvim",
>    --"ibus-daemon -d -x",
>    "fcitx",
>    "google-chrome",
>    --"xrandr --output VBOX1 --right-of VBOX0",
>    "xrandr --output LVDS1 --auto --output VGA1 --mode 1680x1050
> --left-of LVDS1",
>    "/usr/bin/python2.7 /mnt/share/Tools/ALL/goagent_nop/local/proxy.py",
>    "for m in vbox{drv,netadp,netflt}; do modprobe $m; done",
>    "pcmanfm"
> }
>
> for index, item in ipairs(autorun_items) do
>  r.run(item)
> end
>
>
> my autorun.lua
>
> -- @author Peter J. Kranz (Absurd-Mind, pe...@myref.net)
> -- Any questions, criticism or praise just drop me an email
>
> local M = {}
>
> -- get the current Pid of awesome
> local function getCurrentPid()
>    -- get awesome pid from pgrep
>    local fpid = io.popen("pgrep -u " .. os.getenv("USER") .. " -o awesome")
>    local pid = fpid:read("*n")
>    fpid:close()
>
>    -- sanity check
>    if pid == nil then
>        return -1
>    end
>
>    return pid
> end
>
> local function getOldPid(filename)
>    -- open file
>    local pidFile = io.open(filename)
>    if pidFile == nil then
>        return -1
>    end
>
>    -- read number
>    local pid = pidFile:read("*n")
>    pidFile:close()
>
>    -- sanity check
>    if pid <= 0 then
>        return -1
>    end
>
>    return pid;
> end
>
> local function writePid(filename, pid)
>    local pidFile = io.open(filename, "w+")
>    pidFile:write(pid)
>    pidFile:close()
> end
>
> local function shallExecute(oldPid, newPid)
>    -- simple check if equivalent
>    if oldPid == newPid then
>        return false
>    end
>
>    return true
> end
>
> local function getPidFile()
>    local host = io.lines("/proc/sys/kernel/hostname")()
>    return awful.util.getdir("cache") .. "/awesome." .. host .. ".pid"
> end
>
> -- run Once per real awesome start (config reload works)
> -- does not cover "pkill awesome && awesome"
> function M.run(shellCommand)
>    -- check and Execute
>    if shallExecute(M.oldPid, M.currentPid) then
>        awful.util.spawn_with_shell(shellCommand)
>    end
> end
>
> M.pidFile = getPidFile()
> M.oldPid = getOldPid(M.pidFile)
> M.currentPid = getCurrentPid()
> writePid(M.pidFile, M.currentPid)
>
> return M

--
To unsubscribe, send mail to awesome-unsubscr...@naquadah.org.

Reply via email to