nixpkgs/pkgs/by-name/mo/monodraw/package.nix
2025-11-08 21:32:38 +01:00

78 lines
1.8 KiB
Nix

{
lib,
stdenvNoCC,
unzip,
fetchurl,
writeShellScript,
curl,
xmlstarlet,
gnused,
common-updater-scripts,
}:
let
# Monodraw uses build numbers (tracked via Sparkle appcast)
# Appcast: https://updates.helftone.com/monodraw/appcast-beta.xml
build = "118";
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "monodraw";
version = "1.7.1";
src = fetchurl {
url = "https://updates.helftone.com/monodraw/downloads/Monodraw-b${build}.zip";
hash = "sha256-7ti/FXoxNMhSYV7TWTeP8mAnCdqukI0SgDdW6RRQsFc=";
};
sourceRoot = ".";
nativeBuildInputs = [ unzip ];
installPhase = ''
runHook preInstall
mkdir -p $out/Applications
cp -R ./Monodraw.app $out/Applications
runHook postInstall
'';
passthru = {
inherit build;
updateScript = writeShellScript "monodraw-update-script" ''
set -euo pipefail
export PATH="${
lib.makeBinPath [
curl
xmlstarlet
gnused
common-updater-scripts
]
}"
xml=$(curl -s "https://updates.helftone.com/monodraw/appcast-beta.xml")
version=$(echo "$xml" | xmlstarlet sel -t -v '//enclosure/@sparkle:shortVersionString')
build=$(echo "$xml" | xmlstarlet sel -t -v '//enclosure/@sparkle:version')
# Update build number in let binding
sed -i "s/build = \"[0-9]*\"/build = \"$build\"/" pkgs/by-name/mo/monodraw/package.nix
# Update version and hash
update-source-version monodraw "$version"
'';
};
meta = {
description = "Powerful ASCII art editor designed for the Mac";
homepage = "https://monodraw.helftone.com/";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ delafthi ];
platforms = [
"x86_64-darwin"
"aarch64-darwin"
];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})