]> git.madduck.net Git - etc/awesome.git/blobdiff - widget/watch.lua

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Merge pull request #338 from klaernie/master
[etc/awesome.git] / widget / watch.lua
index 55226b92cb20e43f762a5378d9891246ba52459a..36118b8a3cd31031c5786aba975059d137190f9f 100644 (file)
@@ -6,15 +6,14 @@
                                                   
 --]]
 
                                                   
 --]]
 
-local helpers      = require("lain.helpers")
-local textbox      = require("wibox.widget.textbox")
-local setmetatable = setmetatable
+local helpers = require("lain.helpers")
+local textbox = require("wibox.widget.textbox")
 
 -- Template for asynchronous watcher widgets
 -- lain.widget.watch
 
 
 -- Template for asynchronous watcher widgets
 -- lain.widget.watch
 
-local function worker(args)
-    local watch     = {}
+local function factory(args)
+    local watch     = { widget = args.widget or textbox() }
     local args      = args or {}
     local timeout   = args.timeout or 5
     local nostart   = args.nostart or false
     local args      = args or {}
     local timeout   = args.timeout or 5
     local nostart   = args.nostart or false
@@ -22,8 +21,6 @@ local function worker(args)
     local cmd       = args.cmd
     local settings  = args.settings or function() widget:set_text(output) end
 
     local cmd       = args.cmd
     local settings  = args.settings or function() widget:set_text(output) end
 
-    watch.widget = args.widget or textbox()
-
     function watch.update()
         helpers.async(cmd, function(f)
             output = f
     function watch.update()
         helpers.async(cmd, function(f)
             output = f
@@ -40,4 +37,4 @@ local function worker(args)
     return watch
 end
 
     return watch
 end
 
-return setmetatable({}, { __call = function(_, ...) return worker(...) end })
+return factory