Browse Source

Show size, used, available space in file system

Marcos Kirsch 8 years ago
parent
commit
b017526d71
1 changed files with 10 additions and 2 deletions
  1. 10 2
      http/file_list.lua

+ 10 - 2
http/file_list.lua

@@ -2,12 +2,20 @@ return function (connection, args)
    connection:send("HTTP/1.0 200 OK\r\nContent-Type: text/html\r\nCache-Control: private, no-store\r\n\r\n")
    connection:send('<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>Server File Listing</title></head>')
    connection:send('<body>')
+   coroutine.yield()
    connection:send('<h1>Server File Listing</h1>')
+
+   local remaining, used, total=file.fsinfo()
+   connection:send("<b>Total size: </b> " .. total .. " bytes<br/>\n")
+   connection:send("<b>In Use: </b> " .. used .. " bytes<br/>\n")
+   connection:send("<b>Free: </b> " .. remaining .. " bytes<br/>\n")
+
+   connection:send("<p>\n")
+   connection:send("<b>Files:</b><br/>\n")
    connection:send("<ul>\n")
 
    local l = file.list()
    for name, size in pairs(l) do
-
       local isHttpFile = string.match(name, "(http/)") ~= nil
       local url = string.match(name, ".*/(.*)")
       if isHttpFile then
@@ -15,8 +23,8 @@ return function (connection, args)
          -- this list could be very long, so we'll yield in order to avoid overflowing the send buffer.
          coroutine.yield()
       end
-
    end
    connection:send("</ul>\n")
+   connection:send("</p>\n")
    connection:send('</body></html>')
 end