diff --git a/pkgs/os-specific/darwin/aldente/default.nix b/pkgs/os-specific/darwin/aldente/default.nix new file mode 100644 index 00000000000..f703fd6df10 --- /dev/null +++ b/pkgs/os-specific/darwin/aldente/default.nix @@ -0,0 +1,59 @@ +{ lib +, stdenvNoCC +, fetchurl +, undmg +}: + +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "aldente"; + version = "1.22"; + + src = fetchurl { + url = "https://github.com/davidwernhart/aldente-charge-limiter/releases/download/${finalAttrs.version}/AlDente.dmg"; + hash = "sha256-y8S9SCDbvoKGtNqGQvJDSpbLhh7GqXUo7pLcMzuCnjo="; + }; + + dontBuild = true; + dontFixup = true; + + nativeBuildInputs = [ undmg ]; + + # AlDente.dmg is not HFS formatted, default unpackPhase fails + # https://discourse.nixos.org/t/help-with-error-only-hfs-file-systems-are-supported-on-ventura + unpackCmd = '' + if ! [[ "$curSrc" =~ \.dmg$ ]]; then return 1; fi + mnt=$(mktemp -d -t ci-XXXXXXXXXX) + + function finish { + /usr/bin/hdiutil detach $mnt -force + } + trap finish EXIT + + /usr/bin/hdiutil attach -nobrowse -readonly $src -mountpoint $mnt + + shopt -s extglob + DEST="$PWD" + (cd "$mnt"; cp -a !(Applications) "$DEST/") + ''; + + sourceRoot = "AlDente.app"; + + installPhase = '' + runHook preInstall + + mkdir -p $out/Applications/AlDente.app + cp -R . $out/Applications/AlDente.app + + runHook postInstall + ''; + + meta = with lib; { + description = "macOS tool to limit maximum charging percentage"; + homepage = "https://apphousekitchen.com"; + changelog = "https://github.com/davidwernhart/aldente-charge-limiter/releases/tag/${finalAttrs.version}"; + license = with licenses; [ unfree ]; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + maintainers = with maintainers; [ stepbrobd ]; + platforms = [ "aarch64-darwin" "x86_64-darwin" ]; + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a875af27b7d..3adf5367925 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -27017,6 +27017,8 @@ with pkgs; acpitool = callPackage ../os-specific/linux/acpitool { }; + aldente = callPackage ../os-specific/darwin/aldente { }; + alfred = callPackage ../os-specific/linux/batman-adv/alfred.nix { }; alertmanager-bot = callPackage ../servers/monitoring/alertmanager-bot { };