71 lines
2.3 KiB
Nix
71 lines
2.3 KiB
Nix
{
|
||
stdenv,
|
||
lib,
|
||
fetchurl,
|
||
undmg,
|
||
makeWrapper,
|
||
writeShellApplication,
|
||
curl,
|
||
cacert,
|
||
gnugrep,
|
||
common-updater-scripts,
|
||
}:
|
||
|
||
stdenv.mkDerivation (finalAttrs: {
|
||
version = "3.5.1";
|
||
pname = "grandperspective";
|
||
|
||
src = fetchurl {
|
||
inherit (finalAttrs) version;
|
||
url = "mirror://sourceforge/grandperspectiv/GrandPerspective-${
|
||
lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version
|
||
}.dmg";
|
||
hash = "sha256-ZD6XUtsbwxHe3MYdCH9I/pYBCGgilPhhbYQChr0wCj4=";
|
||
};
|
||
|
||
sourceRoot = "GrandPerspective.app";
|
||
buildInputs = [ undmg ];
|
||
nativeBuildInputs = [ makeWrapper ];
|
||
# Create a trampoline script in $out/bin/ because a symlink doesn’t work for
|
||
# this app.
|
||
installPhase = ''
|
||
mkdir -p "$out/Applications/GrandPerspective.app" "$out/bin"
|
||
cp -R . "$out/Applications/GrandPerspective.app"
|
||
makeWrapper "$out/Applications/GrandPerspective.app/Contents/MacOS/GrandPerspective" "$out/bin/grandperspective"
|
||
'';
|
||
|
||
passthru.updateScript = lib.getExe (writeShellApplication {
|
||
name = "grandperspective-update-script";
|
||
runtimeInputs = [
|
||
curl
|
||
cacert
|
||
gnugrep
|
||
common-updater-scripts
|
||
];
|
||
text = ''
|
||
url="https://sourceforge.net/p/grandperspectiv/documentation/ci/master/tree/CHANGES.txt?format=raw"
|
||
version=$(curl -s "$url" | grep -oP 'Version \K[0-9.]+(?=,)' | head -n 1)
|
||
update-source-version grandperspective "$version"
|
||
'';
|
||
});
|
||
|
||
meta = {
|
||
description = "Open-source macOS application to analyze disk usage";
|
||
longDescription = ''
|
||
GrandPerspective is a small utility application for macOS that graphically shows the disk usage within a file
|
||
system. It can help you to manage your disk, as you can easily spot which files and folders take up the most
|
||
space. It uses a so called tree map for visualisation. Each file is shown as a rectangle with an area proportional to
|
||
the file's size. Files in the same folder appear together, but their placement is otherwise arbitrary.
|
||
'';
|
||
mainProgram = "grandperspective";
|
||
homepage = "https://grandperspectiv.sourceforge.net";
|
||
license = lib.licenses.gpl2Only;
|
||
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
|
||
maintainers = with lib.maintainers; [
|
||
eliandoran
|
||
DimitarNestorov
|
||
];
|
||
platforms = lib.platforms.darwin;
|
||
};
|
||
|
||
})
|