diff options
author | Jan Tojnar <jtojnar@gmail.com> | 2021-12-31 06:56:39 +0100 |
---|---|---|
committer | Jan Tojnar <jtojnar@gmail.com> | 2021-12-31 07:17:03 +0100 |
commit | 9fdff7530395a2e86f05f3aac11c4f4926e8e734 (patch) | |
tree | b5a38793fa508c5dc48e822be1f64981ab6d8346 /pkgs/tools/graphics/gmic-qt | |
parent | 914fbcdee4ff1c9dbeca3202a6fab04e387dc0cd (diff) |
gmic-qt: add update script
Using printf for creating the hash since otherwise update-source-version would detect multiple hashes.
Diffstat (limited to 'pkgs/tools/graphics/gmic-qt')
-rw-r--r-- | pkgs/tools/graphics/gmic-qt/default.nix | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/pkgs/tools/graphics/gmic-qt/default.nix b/pkgs/tools/graphics/gmic-qt/default.nix index efcd0a87a4ab8..518c7a35c810e 100644 --- a/pkgs/tools/graphics/gmic-qt/default.nix +++ b/pkgs/tools/graphics/gmic-qt/default.nix @@ -18,6 +18,12 @@ , gimp ? null , qtbase , qttools +, writeShellScript +, common-updater-scripts +, gnugrep +, gnused +, coreutils +, jq }: let @@ -132,6 +138,33 @@ mkDerivation rec { wrapQtApp "$out/${gimp.targetPluginDir}/gmic_gimp_qt" ''; + passthru = { + updateScript = writeShellScript "${pname}-update-script" '' + set -o errexit + PATH=${lib.makeBinPath [ common-updater-scripts curl gnugrep gnused coreutils jq ]} + + latestVersion=$(curl 'https://gmic.eu/files/source/' | grep -E 'gmic_[^"]+\.tar\.gz' | sed -E 's/.+<a href="gmic_([^"]+)\.tar\.gz".+/\1/g' | sort --numeric-sort --reverse | head -n1) + + if [[ "${version}" = "$latestVersion" ]]; then + echo "The new version same as the old version." + exit 0 + fi + + # gmic-community is not versioned so let’s just update to master. + communityLatestCommit=$(curl "https://api.github.com/repos/dtschump/gmic-community/commits/master") + communityLatestSha=$(echo "$communityLatestCommit" | jq .sha --raw-output) + communityLatestDate=$(echo "$communityLatestCommit" | jq .commit.committer.date --raw-output | sed 's/T.\+//') + update-source-version --source-key=gmic-community "gmic-qt" "unstable-$communityLatestDate" --rev="$communityLatestSha" + + for component in CImg gmic_stdlib gmic gmic_qt; do + # The script will not perform an update when the version attribute is up to date from previous platform run + # We need to clear it before each run + update-source-version "--source-key=$component" "gmic-qt" 0 "$(printf '0%.0s' {1..64})" + update-source-version "--source-key=$component" "gmic-qt" $latestVersion + done + ''; + }; + meta = with lib; { description = variants.${variant}.description; homepage = "http://gmic.eu/"; |