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/extensions.nix | |
| 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/extensions.nix')
| -rw-r--r-- | updates/web/chromium/extensions.nix | 81 |
1 files changed, 36 insertions, 45 deletions
diff --git a/updates/web/chromium/extensions.nix b/updates/web/chromium/extensions.nix index d9de16d..ab6e818 100644 --- a/updates/web/chromium/extensions.nix +++ b/updates/web/chromium/extensions.nix @@ -1,54 +1,45 @@ -{ pkgs, lib, ... }: +{ + pkgs, + lib, + ... +}: let extensions = import ../../../modules/web/chromium/extensions/metadata.nix; + + luaExtensionList = lib.concatMapStringsSep "\n" (ext: '' + { pname = "${ext.pname}", owner = "${ext.owner}", repo = "${ext.repo}", version = "${ext.version}", updateType = "${ext.updateType or "release"}", tagPrefix = "${ext.tagPrefix}" }, + '') extensions; + + luaScript = pkgs.writeText "check-chromium-extension-updates.lua" ( + builtins.replaceStrings [ "--@@EXTENSIONS@@--" ] [ luaExtensionList ] ( + builtins.readFile ./check-chromium-extension-updates.lua + ) + ); in { - mkUpdateScript = pkgs.writeShellApplication { - name = "check-chromium-extension-updates"; - runtimeInputs = [ - pkgs.curl - pkgs.jq + mkUpdateScript = pkgs.stdenv.mkDerivation { + pname = "check-chromium-extension-updates"; + version = "0.1.0"; + dontUnpack = true; + nativeBuildInputs = [ + pkgs.luajit + pkgs.makeWrapper ]; - text = '' - echo "Checking for Chromium extension updates..." - echo "----------------------------------------------" - echo "" - - ${lib.concatMapStringsSep "\n" ( - ext: - let - isTag = (ext.updateType or "release") == "tag"; - apiEndpoint = - if isTag then - "https://api.github.com/repos/${ext.owner}/${ext.repo}/tags" - else - "https://api.github.com/repos/${ext.owner}/${ext.repo}/releases/latest"; - jqFilter = if isTag then ".[0].name" else ".tag_name"; - in - '' - # Check ${ext.pname} - LATEST_RAW=$(curl -sL --fail "${apiEndpoint}" | jq -r '${jqFilter}') - - if [ -z "$LATEST_RAW" ] || [ "$LATEST_RAW" == "null" ]; then - echo "FAIL [${ext.pname}] Failed to fetch data from GitHub API." - else - PREFIX="${ext.tagPrefix}" - LATEST_STRIPPED="''${LATEST_RAW#"$PREFIX"}" - - if [ "$LATEST_STRIPPED" != "${ext.version}" ]; then - echo "UPDATE [${ext.pname}] ${ext.version} -> $LATEST_STRIPPED" - echo " Repo: https://github.com/${ext.owner}/${ext.repo}" - echo "" - else - echo "OK [${ext.pname}] ${ext.version}" - fi - fi - '' - ) extensions} - - echo "----------------------------------------------" - echo "Done!" + installPhase = '' + mkdir -p $out/bin + install -m755 ${luaScript} $out/bin/check-chromium-extension-updates + patchShebangs $out/bin/check-chromium-extension-updates + wrapProgram $out/bin/check-chromium-extension-updates \ + --prefix PATH : "${ + lib.makeBinPath [ + pkgs.curl + pkgs.jq + ] + }" ''; + meta = { + mainProgram = "check-chromium-extension-updates"; + }; }; } |
