From: martin f. krafft <madduck@madduck.net>
Date: Wed, 21 Feb 2018 22:23:04 +0000 (+1300)
Subject: factor out sorted_table helper function
X-Git-Url: https://git.madduck.net/etc/awesome.git/commitdiff_plain/65a64dbd28fbc1be5503a8e5ba45a48098c8af7c?ds=inline

factor out sorted_table helper function
---

diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua
index 3246cb4..60c9133 100644
--- a/.config/awesome/rc.lua
+++ b/.config/awesome/rc.lua
@@ -12,6 +12,7 @@ local xrdb = beautiful.xresources
 local naughty = require("naughty")
 local menubar = require("menubar")
 local hotkeys_popup = require("awful.hotkeys_popup").widget
+local tblutils = require("tblutils")
 local lain = require("lain")
 local dkjson = require("lain.util").dkjson
 local math = require("math")
@@ -104,33 +105,6 @@ local function client_menu_toggle_fn()
     end
 end
 
-local function sorted_pairs(t, f)
-    local a = {}
-    for n in pairs(t) do table.insert(a, n) end
-    table.sort(a, f)
-    local i = 0      -- iterator variable
-    local iter = function ()   -- iterator function
-        i = i + 1
-        if a[i] == nil then return nil
-        else return a[i], t[a[i]]
-        end
-    end
-    return iter
-end
-
-local function print_table(tbl, indent)
-    if not indent then indent = 0 end
-    for k, v in pairs(tbl) do
-        formatting = string.rep("  ", indent) .. k .. ": "
-        if type(v) == "table" then
-            print(formatting)
-            print_table(v, indent+1)
-        else
-            print(formatting .. tostring(v))
-        end
-    end
-end
-
 local lain_bat = lain.widget.bat({
     batteries = {"BAT0", "BAT1"},
     settings = function()
@@ -213,7 +187,7 @@ ZONES = {
   ["DE"] = "Europe/Berlin"
 }
 local now = luatz.time_in(nil)
-for c, tz in sorted_pairs(ZONES) do
+for c, tz in tblutils.sorted_pairs(ZONES) do
     local t = luatz.time_in(tz)
     if math.abs(os.difftime(t, now)) > 10 then
         local widget = wibox.widget.textclock(c .. ": %H:%M (%a)", 60, tz)
@@ -323,7 +297,7 @@ awful.screen.connect_for_each_screen(function(s)
     if not tags[s.index] then
         tags[s.index] = {}
     end
-    for n,p in sorted_pairs(screentags[s.index]) do
+    for n,p in tblutils.sorted_pairs(screentags[s.index]) do
         p["screen"] = s
         n = string.sub(n, 2) -- remove leading 't' needed for syntax in table
         table.insert(tags[s.index], awful.tag.add(n, p))
diff --git a/.config/awesome/tblutils.lua b/.config/awesome/tblutils.lua
new file mode 100644
index 0000000..141645c
--- /dev/null
+++ b/.config/awesome/tblutils.lua
@@ -0,0 +1,17 @@
+local module = {}
+
+function module.sorted_pairs(t, f)
+    local a = {}
+    for n in pairs(t) do table.insert(a, n) end
+    table.sort(a, f)
+    local i = 0      -- iterator variable
+    local iter = function ()   -- iterator function
+        i = i + 1
+        if a[i] == nil then return nil
+        else return a[i], t[a[i]]
+        end
+    end
+    return iter
+end
+
+return module