diff options
author | Artturi <Artturin@artturin.com> | 2024-04-06 15:14:08 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-06 15:14:08 +0300 |
commit | a4b6381a32e6ca735148cd09b73bc335fcdf12aa (patch) | |
tree | 9ce13d27226d27a56360b1048af7c35cbc4cada8 /pkgs/data | |
parent | e806fb4f5c65161115e98d2659e2af254db47331 (diff) | |
parent | 897a8681d3f08839ddb69217fff27f97aaae6309 (diff) |
Merge pull request #297722 from khaneliman/saf
sketchybar-app-font: 2.0.12 -> 2.0.16, add meta.passthru.updateScript and include additional artifacts
Diffstat (limited to 'pkgs/data')
-rw-r--r-- | pkgs/data/fonts/sketchybar-app-font/default.nix | 101 |
1 files changed, 79 insertions, 22 deletions
diff --git a/pkgs/data/fonts/sketchybar-app-font/default.nix b/pkgs/data/fonts/sketchybar-app-font/default.nix index cd9af9a9c5f47..c131069e9e748 100644 --- a/pkgs/data/fonts/sketchybar-app-font/default.nix +++ b/pkgs/data/fonts/sketchybar-app-font/default.nix @@ -1,34 +1,91 @@ +let + artifacts = [ "shell" "lua" "font" ]; +in { lib , stdenvNoCC , fetchurl +, common-updater-scripts +, curl +, jq +, writeShellScript +, artifactList ? artifacts }: +lib.checkListOfEnum "sketchybar-app-font: artifacts" artifacts artifactList + stdenvNoCC.mkDerivation + (finalAttrs: + let + selectedSources = map (artifact: builtins.getAttr artifact finalAttrs.passthru.sources) artifactList; + in + { + pname = "sketchybar-app-font"; + version = "2.0.16"; -stdenvNoCC.mkDerivation (finalAttrs: { - pname = "sketchybar-app-font"; - version = "2.0.12"; + srcs = selectedSources; - src = fetchurl { - url = "https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v${finalAttrs.version}/sketchybar-app-font.ttf"; - hash = "sha256-qACf4eWDeubBmJV0ApWidp2ESLREi5qiLliWCXoMBKY="; - }; + unpackPhase = '' + runHook preUnpack - dontUnpack = true; + for s in $selectedSources; do + b=$(basename $s) + cp $s ''${b#*-} + done - installPhase = '' - runHook preInstall + runHook postUnpack + ''; + + installPhase = '' + runHook preInstall + + '' + lib.optionalString (lib.elem "font" artifactList) '' + install -Dm644 ${finalAttrs.passthru.sources.font} "$out/share/fonts/truetype/sketchybar-app-font.ttf" - install -Dm644 $src $out/share/fonts/truetype/sketchybar-app-font.ttf + '' + lib.optionalString (lib.elem "shell" artifactList) '' + install -Dm755 ${finalAttrs.passthru.sources.shell} "$out/bin/icon_map.sh" - runHook postInstall - ''; + '' + lib.optionalString (lib.elem "lua" artifactList) '' + install -Dm644 ${finalAttrs.passthru.sources.lua} "$out/lib/sketchybar-app-font/icon_map.lua" - meta = { - description = "A ligature-based symbol font and a mapping function for sketchybar"; - longDescription = '' - A ligature-based symbol font and a mapping function for sketchybar, inspired by simple-bar's usage of community-contributed minimalistic app icons. + runHook postInstall ''; - homepage = "https://github.com/kvndrsslr/sketchybar-app-font"; - license = lib.licenses.cc0; - maintainers = with lib.maintainers; [ khaneliman ]; - }; -}) + + passthru = { + sources = { + font = fetchurl { + url = "https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v${finalAttrs.version}/sketchybar-app-font.ttf"; + hash = "sha256-mZ3LmkL54NNQzXuCyWVNlAIod3T5/aGKvnLZjZ/GYdw="; + }; + lua = fetchurl { + url = "https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v${finalAttrs.version}/icon_map.lua"; + hash = "sha256-8daDECZ8hsoyh4Rp3xbkYgPSamCylrzf8zzyu/iwZEc="; + }; + shell = fetchurl { + url = "https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v${finalAttrs.version}/icon_map.sh"; + hash = "sha256-h0rGkzy1smDL2guvvgeUVUD0q4n9LDKDLQJahbWHgWA="; + }; + }; + + updateScript = writeShellScript "update-sketchybar-app-font" '' + set -o errexit + export PATH="${lib.makeBinPath [ curl jq common-updater-scripts ]}" + NEW_VERSION=$(curl --silent https://api.github.com/repos/kvndrsslr/sketchybar-app-font/releases/latest | jq '.tag_name | ltrimstr("v")' --raw-output) + if [[ "${finalAttrs.version}" = "$NEW_VERSION" ]]; then + echo "The new version same as the old version." + exit 0 + fi + for artifact in ${lib.escapeShellArgs (lib.mapAttrsToList(a: _: a) finalAttrs.passthru.sources)}; do + update-source-version "sketchybar-app-font" "0" "${lib.fakeHash}" --source-key="sources.$artifact" + update-source-version "sketchybar-app-font" "$NEW_VERSION" --source-key="sources.$artifact" + done + ''; + }; + + meta = { + description = "A ligature-based symbol font and a mapping function for sketchybar"; + longDescription = '' + A ligature-based symbol font and a mapping function for sketchybar, inspired by simple-bar's usage of community-contributed minimalistic app icons. + ''; + homepage = "https://github.com/kvndrsslr/sketchybar-app-font"; + license = lib.licenses.cc0; + maintainers = with lib.maintainers; [ khaneliman ]; + }; + }) |