44 lines
1.8 KiB
Nix
44 lines
1.8 KiB
Nix
{ inputs, system, ... }: let
|
|
pkgs = import inputs.nixpkgs { inherit system; config = { android_sdk.accept_license = true; allowUnfree = true; }; overlays = [ inputs.devshell.overlays.default ]; };
|
|
buildToolsVersion = "30.0.3";
|
|
composed = pkgs.androidenv.composeAndroidPackages {
|
|
buildToolsVersions = [ buildToolsVersion ];
|
|
platformVersions = [ "32" ];
|
|
};
|
|
fhsEnv = pkgs.buildFHSUserEnv {
|
|
name = "android-sdk-env";
|
|
targetPkgs = pkgs: (with pkgs; [ glibc ]);
|
|
profile = ''
|
|
export ANDROID_SDK_ROOT="${composed.androidsdk}/libexec/android-sdk/"
|
|
'';
|
|
};
|
|
in
|
|
pkgs.devshell.mkShell {
|
|
name = "Orgzly";
|
|
packages = [ pkgs.jdk17 pkgs.kotlin-language-server pkgs.nixpkgs-fmt ];
|
|
env = [
|
|
{ name = "ANDROID_SDK_ROOT"; eval = "${composed.androidsdk}/libexec/android-sdk/"; }
|
|
{ name = "BUILD_TOOLS_PATH"; eval = "$ANDROID_SDK_ROOT/build-tools/${buildToolsVersion}"; }
|
|
{ name = "APK_DIR"; eval = "$PRJ_ROOT/app/build/outputs/apk/premium/release"; }
|
|
];
|
|
commands = [
|
|
{
|
|
name = "gradle";
|
|
category = "tools";
|
|
help = "Working gradle invocation";
|
|
command = "${fhsEnv}/bin/android-sdk-env \"$PRJ_ROOT/gradlew\" $@";
|
|
}
|
|
{
|
|
name = "install-debug-signed-release";
|
|
category = "tools";
|
|
help = "Install a debug signed release APK";
|
|
command = ''
|
|
rm -f "$APK_DIR/"*
|
|
gradle assembleRelease
|
|
"$BUILD_TOOLS_PATH/zipalign" -v -p 4 "$APK_DIR/app-premium-release-unsigned.apk" "$APK_DIR/app-release-unsigned-aligned.apk"
|
|
echo android | "$BUILD_TOOLS_PATH/apksigner" sign --ks "$HOME/.android/debug.keystore" --out "$APK_DIR/app-release.apk" "$APK_DIR/app-release-unsigned-aligned.apk"
|
|
adb install -r "$APK_DIR/app-release.apk"
|
|
'';
|
|
}
|
|
];
|
|
}
|