From 67d261ab378fa9166ee6e0c31b7cb4e32a019925 Mon Sep 17 00:00:00 2001 From: garret Date: Sun, 25 Feb 2024 23:01:13 +0000 Subject: get rid of dependencycontrol bullshit there is no sense in me keeping it around when all it does is add faff to writing the script add useless noise to the filenames/paths and enforces its opinions upon me which i dont agree with and all for absolutely ZERO reason since i don't even have a feed in the first place if you want to take my scripts and package them into a dependencycontrol feed, you are more than welcome to do so, provided you comply with the terms of the licence. but your life is going to be a little bit harder i'm afraid, sorry about that. i will keep all the script_namespace, depctrl registration and such around for the time being (removing it is >effort) --- macros/garret.depctrl_config.lua | 211 --------------------------------------- 1 file changed, 211 deletions(-) delete mode 100644 macros/garret.depctrl_config.lua (limited to 'macros/garret.depctrl_config.lua') diff --git a/macros/garret.depctrl_config.lua b/macros/garret.depctrl_config.lua deleted file mode 100644 index ad3e663..0000000 --- a/macros/garret.depctrl_config.lua +++ /dev/null @@ -1,211 +0,0 @@ -script_name="DepCtrl Global Config" -script_description="the future is now" -script_author = "garret" -script_version = "1.3.1" -script_namespace = "garret.depctrl_config" - -local DependencyControl = require("l0.DependencyControl") -local depctrl = DependencyControl {} - -local function get_bool(field, default) -- can't just do `field or default`, because the default might be true when field is false - if field == nil then - return default - else - return field - end -end - -local function get_log_level(num) - if num == 0 then return "0: Fatal" - elseif num == 1 then return "1: Error" - elseif num == 2 then return "2: Warning" - elseif num == 3 then return "3: Hint" - elseif num == 4 then return "4: Debug" - elseif num == 5 then return "5: Trace" end - return nil -end - -local function seconds_to_human(seconds) - -- adapted from https://stackoverflow.com/a/8211778 - local years = math.floor(seconds / 31536000) - local days = math.floor((seconds % 31536000) / 86400) - local hours = math.floor(((seconds % 31536000) % 86400) / 3600) - local minutes = math.floor((((seconds % 31536000) % 86400) % 3600) / 60) - seconds = (((seconds % 31536000) % 86400) % 3600) % 60 - --return years, days, hours, minutes, seconds - local timestamp = "" - if years ~= 0 then timestamp = timestamp..years.."y" end - if days ~= 0 then timestamp = timestamp..days.."d" end - if hours ~= 0 then timestamp = timestamp..hours.."h" end - if minutes ~= 0 then timestamp = timestamp..minutes.."m" end - if seconds ~= 0 then timestamp = timestamp..seconds.."s" end - return timestamp -end - -local function human_to_seconds(human) - -- im sure this is hideously inefficient - local years = (tonumber(human:match("(%d*)y")) or 0) * 31536000 - local days = (tonumber(human:match("(%d*)d")) or 0) * 86400 - local hours = (tonumber(human:match("(%d*)h")) or 0) * 3600 - local minutes = (tonumber(human:match("(%d*)m")) or 0) * 60 - local seconds = (tonumber(human:match("(%d*)s")) or 0) - local res = years + days + hours + minutes + seconds - return res -end - -local function get_human_filesize(bytes) - -- TODO - return bytes -end - -local function get_config(config) - local defaults = DependencyControl.config.defaults - local dialog = { - { class="checkbox", name="updaterEnabled", - x=0,y=0,width=2,height=1, - label = "Enable Auto-updater", - value=get_bool(config.updaterEnabled, defaults.updaterEnabled), - }, - { class="label", label="Update interval:", - x=0,y=1,width=1,height=1, - }, - { class="edit", name = "updateInterval", - x=1,y=1,width=1,height=1, - value = seconds_to_human(config.updateInterval or defaults.updateInterval) - }, - { class="label", label="Log Level:", - x=0,y=2,width=1,height=1, - }, - { class="dropdown", name="traceLevel", - x=1,y=2,width=1,height=1, - items={"0: Fatal", "1: Error", "2: Warning", "3: Hint", "4: Debug", "5: Trace"}, - value=get_log_level(config.traceLevel) or "3: Hint", - }, - { class="checkbox", name="dumpFeeds", - x=0,y=3,width=2,height=1, - label = "Dump updater feeds to your Aegsiub folder (debug)", - value=get_bool(config.dumpFeeds, defaults.dumpFeeds) - }, - { class="checkbox", name="tryAllFeeds", - x=0,y=4,width=2,height=1, - label = "Check all available feeds for an update", - value=get_bool(config.tryAllFeeds, defaults.tryAllFeeds) - }, - { class="label", label="Config directory to offer automation scripts:", - x=0,y=5,width=1,height=1 - }, - { class="edit", name="configDir", - text=config.configDir or defaults.configDir, - x=1,y=5,width=1,height=1 - }, - { class="checkbox", name="writeLogs", - x=0,y=6,width=1,height=1, - label = "Write log messages to:", - value=get_bool(config.writeLogs, true) - }, - { class="edit", name="logDir", - text=config.logDir or defaults.logDir, - x=1,y=6,width=1,height=1 - }, - { class="label", label= "?user means " .. aegisub.decode_path("?user"), - x=1,y=7,width=2,height=1 - }, - { class="label", label="Purge old updater log files when:", - x=0,y=8,width=2,height=1 - }, - { class="label", label="File count reaches:", - x=0,y=9,width=1,height=1 - }, - { class="intedit", name="logMaxFiles", - x=1,y=9,width=1,height=1, - value = config.logMaxFiles or defaults.logMaxFiles - }, - { class="label", label="File age reaches:", - x=0,y=10,width=1,height=1, - }, - { class="edit", name="logMaxAge", - x=1,y=10,width=1,height=1, - value = seconds_to_human(config.logMaxAge or defaults.logMaxAge) - }, - { class="label", label="Cumulative file size (in bytes) reaches:", - x=0,y=11,width=1,height=1, - }, - { class="intedit", name="logMaxSize", - x=1,y=11,width=1,height=1, - --value = get_human_filesize(config.logMaxSize or 10*(10^6)) - value = config.logMaxSize or defaults.logMaxSize - }, - } - local pressed, res = aegisub.dialog.display(dialog, {"Cancel", "Reset", "OK"}) - if pressed == "Cancel" then - aegisub.cancel() - elseif pressed == "Reset" then - return {} - end - res.traceLevel = tonumber(res.traceLevel:sub(1, 1)) - res.updateInterval = human_to_seconds(res.updateInterval) - res.logMaxAge = human_to_seconds(res.logMaxAge) - res.extraFeeds = config.extraFeeds - return res -end - -local function split_by_newline(list) - local strs = {} - for i in list:gmatch("[^\n]+") do - table.insert(strs, i) - end - return strs -end - -local function get_feeds(config) - local extraFeeds = config.extraFeeds or {} - - local feed_edit_string = table.concat(extraFeeds, "\n") or "" - - local dialog = { - { class="label", - x=0,y=0,width=1,height=1, - label = "Extra Feeds:", - }, - { class="textbox", name = "feeds", - x=0,y=1,width=20,height=15, - text = feed_edit_string - }, - } - - local pressed, res = aegisub.dialog.display(dialog) - if not pressed then aegisub.cancel() end - - config.extraFeeds = split_by_newline(res.feeds) - return config -end - -local function write_config(new) - for k, v in pairs(new) do - if (v == nil) -- allow nil, so the reset to defaults button works - or v ~= get_bool(DependencyControl.config.c[k], DependencyControl.config.defaults[k]) -- check it's not the current value anyway - then - -- changed, save - DependencyControl.config.c[k] = v - end - end - DependencyControl.config:write(true) - aegisub.log(3, "Done. You'll need to rescan your automation directory or restart aegisub for the changes to take effect.") -end - -local function change_config(modifier) -- i think i might be thinning out the soup a bit too much - DependencyControl.config:load() - local new_config = modifier(DependencyControl.config.c) - write_config(new_config) -end - -local function global_config() - change_config(get_config) -end - -local function extra_feeds() - change_config(get_feeds) -end - -depctrl:registerMacro("DependencyControl/Global Configuration", "Lets you change DependencyControl settings.", global_config) -depctrl:registerMacro("DependencyControl/Extra Feeds", "Lets you provide additional update feeds.", extra_feeds) -- cgit v1.2.3-70-g09d2