diff --git a/drawing/FileSystem.lua b/drawing/FileSystem.lua index e16e9dd..7e95ce6 100644 --- a/drawing/FileSystem.lua +++ b/drawing/FileSystem.lua @@ -1,87 +1,90 @@ -local Line = require 'Line' -local Util = require 'Util' -local Common = require 'Common' +local Line = require 'Line' +local Util = require 'Util' +local Common = require 'Common' local Geometry = require 'Geometry' -local _FS_PATHS_ = {'/', '/boot', '/home', '/mnt/data', '/mnt/dcache', "/tmp"} -local _MODULE_Y_ = 170 -local _SPACING_ = 20 -local _BAR_PAD_ = 100 -local _SEPARATOR_SPACING_ = 20 - -local FS_NUM = #_FS_PATHS_ - -local header = Common.Header( - Geometry.RIGHT_X, - _MODULE_Y_, - Geometry.SECTION_WIDTH, - 'FILE SYSTEMS' -) - -local conky_used_perc = {} - -for i, v in pairs(_FS_PATHS_) do - conky_used_perc[i] = '${fs_used_perc '..v..'}' -end - -local smart = Common.initTextRow( - Geometry.RIGHT_X, - header.bottom_y, - Geometry.SECTION_WIDTH, - 'SMART Daemon' -) - -local _SEP_Y_ = header.bottom_y + _SEPARATOR_SPACING_ - -local separator = Common.initSeparator( - Geometry.RIGHT_X, - _SEP_Y_, - Geometry.SECTION_WIDTH -) - -local _BAR_Y_ = _SEP_Y_ + _SEPARATOR_SPACING_ - -local fs = Common.compound_bar( - Geometry.RIGHT_X, - _BAR_Y_, - Geometry.SECTION_WIDTH, - _BAR_PAD_, - {'root', 'boot', 'home', 'data', 'dcache', 'tmpfs'}, - _SPACING_, - 12, - 0.8 -) - -_SPACING_ = nil -_BAR_PAD_ = nil -_FS_PATHS_ = nil -_SEPARATOR_SPACING_ = nil -_BAR_Y_ = nil -_SEP_Y_ = nil - -local update = function(cr) - local smart_pid = Util.execute_cmd('pidof smartd', nil, '*n') - Common.text_row_set(smart, cr, (smart_pid == '') and 'Error' or 'Running') - - for i = 1, FS_NUM do - local percent = Util.conky_numeric(conky_used_perc[i]) - Common.compound_bar_set(fs, i, percent * 0.01) - end -end - -local draw_static = function(cr) - Common.drawHeader(cr, header) - Common.text_row_draw_static(smart, cr) - Line.draw(separator, cr) - Common.compound_bar_draw_static(fs, cr) -end - -local draw_dynamic = function(cr, trigger) - if trigger == 0 then update(cr) end - Common.text_row_draw_dynamic(smart, cr) - Common.compound_bar_draw_dynamic(fs, cr) -end - return function() + local FS_PATHS = {'/', '/boot', '/home', '/mnt/data', '/mnt/dcache', "/tmp"} + local MODULE_Y = 170 + local SPACING = 20 + local BAR_PAD = 100 + local SEPARATOR_SPACING = 20 + + ----------------------------------------------------------------------------- + -- header + + local header = Common.Header( + Geometry.RIGHT_X, + MODULE_Y, + Geometry.SECTION_WIDTH, + 'FILE SYSTEMS' + ) + + ----------------------------------------------------------------------------- + -- smartd + + local smart = Common.initTextRow( + Geometry.RIGHT_X, + header.bottom_y, + Geometry.SECTION_WIDTH, + 'SMART Daemon' + ) + + local SEP_Y = header.bottom_y + SEPARATOR_SPACING + + local separator = Common.initSeparator( + Geometry.RIGHT_X, + SEP_Y, + Geometry.SECTION_WIDTH + ) + + ----------------------------------------------------------------------------- + -- filesystem bar chart + + local BAR_Y = SEP_Y + SEPARATOR_SPACING + + local fs = Common.compound_bar( + Geometry.RIGHT_X, + BAR_Y, + Geometry.SECTION_WIDTH, + BAR_PAD, + {'root', 'boot', 'home', 'data', 'dcache', 'tmpfs'}, + SPACING, + 12, + 0.8 + ) + + local FS_NUM = #FS_PATHS + local CONKY_USED_PERC = {} + for i, v in pairs(FS_PATHS) do + CONKY_USED_PERC[i] = '${fs_used_perc '..v..'}' + end + + ----------------------------------------------------------------------------- + -- main functions + + local update = function(cr) + local smart_pid = Util.execute_cmd('pidof smartd', nil, '*n') + Common.text_row_set(smart, cr, (smart_pid == '') and 'Error' or 'Running') + + for i = 1, FS_NUM do + local percent = Util.conky_numeric(CONKY_USED_PERC[i]) + Common.compound_bar_set(fs, i, percent * 0.01) + end + end + + local draw_static = function(cr) + Common.drawHeader(cr, header) + Common.text_row_draw_static(smart, cr) + Line.draw(separator, cr) + Common.compound_bar_draw_static(fs, cr) + end + + local draw_dynamic = function(cr, trigger) + if trigger == 0 then update(cr) end + Common.text_row_draw_dynamic(smart, cr) + Common.compound_bar_draw_dynamic(fs, cr) + end + return {static = draw_static, dynamic = draw_dynamic} end