diff options
| author | Arpit Chakladar <arpitchakladar@gmail.com> | 2026-09-09 17:59:41 +0530 |
|---|---|---|
| committer | Arpit Chakladar <arpitchakladar@gmail.com> | 2026-09-09 17:59:41 +0530 |
| commit | 4a9bd882f7fdf00b26427ea70572dc38e7cab8bf (patch) | |
| tree | 503734d082f6ec389b5ebdf359e0554617e7109d /updates/web/chromium/check-chromium-extension-updates.lua | |
| parent | 1f82802bf50bb5c935efea47aef0418fc602492e (diff) | |
| parent | 022e4a37219c2ad8f0aa6cbb8281b060b7e98bf0 (diff) | |
| download | home-manager-config-4a9bd882f7fdf00b26427ea70572dc38e7cab8bf.tar.gz home-manager-config-4a9bd882f7fdf00b26427ea70572dc38e7cab8bf.zip | |
Merge branch 'setting-up-bash'
Diffstat (limited to 'updates/web/chromium/check-chromium-extension-updates.lua')
| -rw-r--r-- | updates/web/chromium/check-chromium-extension-updates.lua | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/updates/web/chromium/check-chromium-extension-updates.lua b/updates/web/chromium/check-chromium-extension-updates.lua new file mode 100644 index 0000000..815e8a4 --- /dev/null +++ b/updates/web/chromium/check-chromium-extension-updates.lua @@ -0,0 +1,56 @@ +#!/usr/bin/env luajit +-- Checks for updated Chromium extensions against their GitHub releases/tags. + +local extensions = { + -- NOTE: replaced by the derivation build step, with the + -- detailed list of all extensions that we need to check + --@@EXTENSIONS@@-- +} + +local function printf(fmt, ...) + io.write(string.format(fmt, ...)) +end + +print("Checking for Chromium extension updates...") +print("----------------------------------------------") +print("") + +for _, ext in ipairs(extensions) do + local isTag = ext.updateType == "tag" + local endpoint + local jqFilter + if isTag then + endpoint = string.format("https://api.github.com/repos/%s/%s/tags", ext.owner, ext.repo) + jqFilter = ".[0].name" + else + endpoint = string.format("https://api.github.com/repos/%s/%s/releases/latest", ext.owner, ext.repo) + jqFilter = ".tag_name" + end + + local proc = io.popen(string.format("curl -sL --fail %q | jq -r %q", endpoint, jqFilter)) + local latestRaw = (proc and proc:read("*a") or ""):gsub("%s+$", "") + if proc then + proc:close() + end + + if latestRaw == "" or latestRaw == "null" then + printf("FAIL [%s] Failed to fetch data from GitHub API.\n", ext.pname) + else + local prefix = ext.tagPrefix + local latest = latestRaw + if prefix ~= "" and latestRaw:sub(1, #prefix) == prefix then + latest = latestRaw:sub(#prefix + 1) + end + + if latest ~= ext.version then + printf("UPDATE [%s] %s -> %s\n", ext.pname, ext.version, latest) + printf(" Repo: https://github.com/%s/%s\n", ext.owner, ext.repo) + print("") + else + printf("OK [%s] %s\n", ext.pname, ext.version) + end + end +end + +print("----------------------------------------------") +print("Done!") |
