--[[ cfg.lua by blastbeat - this script manages the configuration files ]]-- ----------------------------------// DECLARATION //-- --// lua functions //-- --// lua lib methods //-- local os_date = use "os".date --// core scripts //-- local util = use "util" local const = use "const" --// core methods //-- local save = util.save local load = util.load local savearray = util.savearray local CONFIG_PATH = const.CONFIG_PATH --// functions //-- local set local get local start local loadusers local saveusers --// tables //-- local settings local defaultsettings --// simple data types //-- local config_file local config_backup ----------------------------------// DEFINITION //-- config_file = CONFIG_PATH .. "cfg.tbl" config_backup = CONFIG_PATH .. "cfg.tbl.backup" defaultsettings = { hub_bot = "HubBot", log_errors = true, log_scripts = true, log_events = true, debug = true, max_users = 100, reg_only = false, tcp_ports = { 6110, 4660 }, ssl_ports = { 5000, 6000 }, timeout = 0, user_path = CONFIG_PATH, log_path = "././log/", hub_name = "LUADCH Test Hub", hub_description = "...", nick_change = false, no_cid_taken = false, ranks = { "Bot", "Reg", "Op", "Admin", "Owner", }, bot_rank = 1, reg_rank = 2, op_rank = 4, admin_rank = 8, --// admin or super user, all the same owner_rank = 16, levels = { [ 0 ] = "UNREG", [ 10 ] = "GUEST", [ 20 ] = "REG", [ 30 ] = "VIP", [ 40 ] = "SVIP", [ 60 ] = "OPERATOR", [ 80 ] = "ADMIN", [ 100 ] = "HUBOWNER", }, reg_level = 20, key_level = 40, bot_level = 60, scripts = { -- array of scripts which will be executed from hub "hub_inf_manager.lua", "usr_ranks.lua", "usr_nick_prefix.lua", "usr_desc_prefix.lua", "bot_opchat.lua", "bot_echobot.lua", "cmd_restart.lua", "cmd_kick.lua", "cmd_regnick.lua", "cmd_mass.lua", "cmd_sid.lua", "cmd_nick.lua", "cmd_reloadcfg.lua", "cmd_restarthub.lua", "cmd_shutdown.lua", "cmd_killscripts.lua", "example.lua", "motd.lua", "banner.lua", "unknown_command.lua", }, script_path = "././scripts/", ssl_params = { mode = "server", key = "certs/serverkey.pem", certificate = "certs/servercert.pem", cafile = "certs/ca.pem", protocol = "tlsv1", }, timer = 1, use_ssl = false, no_global_scripting = true, } set = function( target, newvalue ) settings[ target ] = newvalue save( settings, "settings", config_backup .. "." .. os_date( "[%d.%m.%y.%H.%M.%S]" ) ) save( settings, "settings", config_file ) end get = function( target ) if settings[ target ] == nil then return defaultsettings[ target ] end return settings[ target ] end loadusers = function( ) local users, err = load( get "user_path" .. "user.tbl" ) return ( users or { } ), err end saveusers = function( regusers ) savearray( regusers, get( "user_path" ) .. "user.tbl.BACKUP." .. os_date( "[%d.%m.%y.%H.%M.%S]" ) ) savearray( regusers, get( "user_path" ) .. "user.tbl" ) end start = function( ) local err settings, err = load( config_file ) return ( settings or { } ), err end ----------------------------------// BEGIN //-- start( ) -- no error report here! ----------------------------------// PUBLIC INTERFACE //-- return { set = set, get = get, reload = start, loadusers = loadusers, saveusers = saveusers, }