2008-06-08 08:14:31 +00:00
--[[
LuCI - Lua Configuration Interface
Copyright 2008 Steven Barth < steven @ midlink.org >
Licensed under the Apache License , Version 2.0 ( the " License " ) ;
you may not use this file except in compliance with the License .
You may obtain a copy of the License at
http : // www.apache . org / licenses / LICENSE - 2.0
$ Id $
] ] --
2008-08-14 23:10:41 +00:00
require ( " luci.tools.webadmin " )
2008-09-04 22:03:19 +00:00
2009-07-19 00:24:58 +00:00
local fs = require " nixio.fs "
local util = require " nixio.util "
2008-09-04 22:03:19 +00:00
local devices = { }
2009-07-19 00:24:58 +00:00
util.consume ( ( fs.glob ( " /dev/sd* " ) ) , devices )
util.consume ( ( fs.glob ( " /dev/hd* " ) ) , devices )
util.consume ( ( fs.glob ( " /dev/scd* " ) ) , devices )
util.consume ( ( fs.glob ( " /dev/mmc* " ) ) , devices )
2008-09-04 22:03:19 +00:00
local size = { }
for i , dev in ipairs ( devices ) do
2009-07-19 00:24:58 +00:00
local s = tonumber ( ( fs.readfile ( " /sys/class/block/%s/size " % dev : sub ( 6 ) ) ) )
2008-09-04 22:03:19 +00:00
size [ dev ] = s and math.floor ( s / 2048 )
end
2009-10-31 15:54:11 +00:00
m = Map ( " fstab " , translate ( " Mount Points " ) )
2008-04-11 19:03:30 +00:00
2008-08-14 23:10:41 +00:00
local mounts = luci.sys . mounts ( )
2009-10-31 15:54:11 +00:00
v = m : section ( Table , mounts , translate ( " Mounted file systems " ) )
2008-08-14 23:10:41 +00:00
2009-10-31 15:54:11 +00:00
fs = v : option ( DummyValue , " fs " , translate ( " Filesystem " ) )
2008-08-14 23:10:41 +00:00
2009-10-31 15:54:11 +00:00
mp = v : option ( DummyValue , " mountpoint " , translate ( " Mount Point " ) )
2008-08-14 23:10:41 +00:00
2009-10-31 15:54:11 +00:00
avail = v : option ( DummyValue , " avail " , translate ( " Available " ) )
2008-08-14 23:10:41 +00:00
function avail . cfgvalue ( self , section )
return luci.tools . webadmin.byte_format (
2008-09-16 01:36:38 +00:00
( tonumber ( mounts [ section ] . available ) or 0 ) * 1024
2008-08-14 23:10:41 +00:00
) .. " / " .. luci.tools . webadmin.byte_format (
2008-09-16 01:36:38 +00:00
( tonumber ( mounts [ section ] . blocks ) or 0 ) * 1024
2008-08-14 23:10:41 +00:00
)
end
2009-10-31 15:54:11 +00:00
used = v : option ( DummyValue , " used " , translate ( " Used " ) )
2008-08-14 23:10:41 +00:00
function used . cfgvalue ( self , section )
2008-09-16 02:00:16 +00:00
return ( mounts [ section ] . percent or " 0% " ) .. " ( " ..
2008-08-14 23:10:41 +00:00
luci.tools . webadmin.byte_format (
2008-09-16 01:36:38 +00:00
( tonumber ( mounts [ section ] . used ) or 0 ) * 1024
2008-08-14 23:10:41 +00:00
) .. " ) "
end
2009-10-31 15:54:11 +00:00
mount = m : section ( TypedSection , " mount " , translate ( " Mount Points " ) , translate ( " Mount Points define at which point a memory device will be attached to the filesystem " ) )
2008-04-11 19:03:30 +00:00
mount.anonymous = true
mount.addremove = true
2008-08-13 23:19:48 +00:00
mount.template = " cbi/tblsection "
2008-04-11 19:03:30 +00:00
2009-05-25 10:31:08 +00:00
mount : option ( Flag , " enabled " , translate ( " enable " ) ) . rmempty = false
2009-10-31 15:54:11 +00:00
dev = mount : option ( Value , " device " , translate ( " Device " ) , translate ( " The device file of the memory or partition (<abbr title= \" for example \" >e.g.</abbr> <code>/dev/sda1</code>) " ) )
2008-09-04 22:03:19 +00:00
for i , d in ipairs ( devices ) do
dev : value ( d , size [ d ] and " %s (%s MB) " % { d , size [ d ] } )
end
2009-10-31 15:54:11 +00:00
mount : option ( Value , " target " , translate ( " Mount Point " ) )
mount : option ( Value , " fstype " , translate ( " Filesystem " ) , translate ( " The filesystem that was used to format the memory (<abbr title= \" for example \" >e.g.</abbr> <samp><abbr title= \" Third Extended Filesystem \" >ext3</abbr></samp>) " ) )
2009-10-31 20:03:27 +00:00
mount : option ( Value , " options " , translate ( " Options " ) , translate ( " See \" mount \" manpage for details " ) )
2008-04-11 19:03:30 +00:00
2009-10-31 15:54:11 +00:00
swap = m : section ( TypedSection , " swap " , " SWAP " , translate ( " If your physical memory is insufficient unused data can be temporarily swapped to a swap-device resulting in a higher amount of usable <abbr title= \" Random Access Memory \" >RAM</abbr>. Be aware that swapping data is a very slow process as the swap-device cannot be accessed with the high datarates of the <abbr title= \" Random Access Memory \" >RAM</abbr>. " ) )
2008-04-11 19:03:30 +00:00
swap.anonymous = true
swap.addremove = true
2008-08-13 23:19:48 +00:00
swap.template = " cbi/tblsection "
2008-04-11 19:03:30 +00:00
2009-05-25 10:31:08 +00:00
swap : option ( Flag , " enabled " , translate ( " enable " ) ) . rmempty = false
2009-10-31 15:54:11 +00:00
dev = swap : option ( Value , " device " , translate ( " Device " ) , translate ( " The device file of the memory or partition (<abbr title= \" for example \" >e.g.</abbr> <code>/dev/sda1</code>) " ) )
2008-09-04 22:03:19 +00:00
for i , d in ipairs ( devices ) do
dev : value ( d , size [ d ] and " %s (%s MB) " % { d , size [ d ] } )
end
2008-04-11 19:03:30 +00:00
return m