]> git.madduck.net Git - etc/awesome.git/commitdiff

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:

new I/O file helper functions
authorluke bonham <dadasignificanulla@gmail.com>
Wed, 29 Jan 2014 10:56:32 +0000 (11:56 +0100)
committerluke bonham <dadasignificanulla@gmail.com>
Wed, 29 Jan 2014 10:56:32 +0000 (11:56 +0100)
helpers.lua
widgets/maildir.lua
widgets/yawn/init.lua
wiki

index c42ce6184dce4ba3ef9e595ca1854f8a09fd7a00..08aba0d7d454d6d7b3ba78cdc9568dd737a0614a 100644 (file)
@@ -10,7 +10,8 @@
 local debug  = require("debug")
 
 local capi   = { timer = timer }
 local debug  = require("debug")
 
 local capi   = { timer = timer }
-local io     = { open = io.open }
+local io     = { open = io.open,
+                 lines = io.lines }
 local rawget = rawget
 
 -- Lain helper functions for internal use
 local rawget = rawget
 
 -- Lain helper functions for internal use
@@ -30,18 +31,40 @@ end
 
 -- }}}
 
 
 -- }}}
 
--- {{{ Read the first line of a file or return nil
+-- {{{ File operations
 
 
-function helpers.first_line(f)
-    local fp = io.open(f)
-    if not fp
-    then
-        return nil
-    end
+-- see if the file exists
+function helpers.file_exists(file)
+  local f = io.open(file, "rb")
+  if f then f:close() end
+  return f ~= nil
+end
+
+
+-- get all lines from a file, returns an empty 
+-- list/table if the file does not exist
+function helpers.lines_from(file)
+  if not helpers.file_exists(file) then return {} end
+  lines = {}
+  for line in io.lines(file) do 
+    lines[#lines + 1] = line
+  end
+  return lines
+end
+
+-- get first line of a file, return nil if
+-- the file does not exist
+function helpers.first_line(file)
+    return helpers.lines_from(file)[1]
+end
 
 
-    local content = fp:read("*l")
-    fp:close()
-    return content
+-- get first non empty line from a file,
+-- returns nil otherwise
+function helpers.first_nonempty_line(file)
+  for k,v in pairs(lines_from(file)) do
+    if #v then return v end 
+  end
+  return nil
 end
 
 -- }}}
 end
 
 -- }}}
index 5cb6840f03854fb7c19bbe2e7a7664be7ab375ee..d4608812e7c62e92e30cfced6eae628b747fc393 100644 (file)
@@ -1,3 +1,4 @@
+
 --[[
                                                   
      Licensed under GNU General Public License v2 
 --[[
                                                   
      Licensed under GNU General Public License v2 
index 36cdf548f3c07bd98241cb7bb380b91ceba2d1ba..b4d9c058dfa1f177641595717b85c8fb3608e243 100644 (file)
@@ -1,3 +1,4 @@
+
 --[[
                                                   
      Licensed under GNU General Public License v2 
 --[[
                                                   
      Licensed under GNU General Public License v2 
diff --git a/wiki b/wiki
index 2fe55cb50b4192866551d50dce563a52234961c7..6825e84bb73415c4cbf5fcd903ea4987976e4be3 160000 (submodule)
--- a/wiki
+++ b/wiki
@@ -1 +1 @@
-Subproject commit 2fe55cb50b4192866551d50dce563a52234961c7
+Subproject commit 6825e84bb73415c4cbf5fcd903ea4987976e4be3