Rebase to flake parts #6
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
# checkm8 jailbreak CLI from upstream binaries; needs root. usbmuxd + idevice* help with USB iOS.
|
||||
{ ... }: {
|
||||
flake.nixosModules.systemPalera1n =
|
||||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
cfg = config.chiasson.system.palera1n;
|
||||
|
||||
version = "2.2.1";
|
||||
|
||||
srcFor =
|
||||
{
|
||||
x86_64-linux = pkgs.fetchurl {
|
||||
url = "https://github.com/palera1n/palera1n/releases/download/v${version}/palera1n-linux-x86_64";
|
||||
sha256 = "0l9ipabbiggkzvpy8hyi681kalln3z3396xsx4lz1393jw3c8dm2";
|
||||
};
|
||||
aarch64-linux = pkgs.fetchurl {
|
||||
url = "https://github.com/palera1n/palera1n/releases/download/v${version}/palera1n-linux-arm64";
|
||||
sha256 = "12n0136g218b5ndq2s7ssymab4i6pbb55l681b94zs9m9lvacfa1";
|
||||
};
|
||||
}
|
||||
.${pkgs.stdenv.hostPlatform.system} or null;
|
||||
|
||||
palera1n =
|
||||
if srcFor == null then
|
||||
null
|
||||
else
|
||||
pkgs.stdenvNoCC.mkDerivation {
|
||||
pname = "palera1n";
|
||||
inherit version;
|
||||
src = srcFor;
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
installPhase = ''
|
||||
install -Dm755 $src $out/bin/palera1n
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "iOS jailbreak tool for checkm8 devices (A8–A11)";
|
||||
homepage = "https://palera.in";
|
||||
license = licenses.mit;
|
||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||
platforms = [ "x86_64-linux" "aarch64-linux" ];
|
||||
mainProgram = "palera1n";
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
options.chiasson.system.palera1n = {
|
||||
enable = lib.mkEnableOption ''
|
||||
palera1n from GitHub releases + usbmuxd / libimobiledevice toggles (defaults on).
|
||||
'';
|
||||
|
||||
usbmuxd = {
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "usbmuxd for iOS USB.";
|
||||
};
|
||||
};
|
||||
|
||||
libimobiledevice = {
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "idevice* tools on PATH.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable (lib.mkMerge [
|
||||
(lib.mkIf (palera1n == null) {
|
||||
assertions = [
|
||||
{
|
||||
assertion = false;
|
||||
message = "system.palera1n: no upstream binary for ${pkgs.stdenv.hostPlatform.system}";
|
||||
}
|
||||
];
|
||||
})
|
||||
(lib.mkIf (palera1n != null) {
|
||||
environment.systemPackages = [ palera1n ];
|
||||
})
|
||||
(lib.mkIf (cfg.enable && cfg.usbmuxd.enable) {
|
||||
services.usbmuxd.enable = true;
|
||||
})
|
||||
(lib.mkIf (cfg.enable && cfg.libimobiledevice.enable) {
|
||||
environment.systemPackages = [ pkgs.libimobiledevice ];
|
||||
})
|
||||
]);
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user