{ description = "nova-shell-android - Material You calendar widget"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; treefmt-nix = { url = "github:numtide/treefmt-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, treefmt-nix, ... }: let systems = [ "x86_64-linux" "aarch64-linux" ]; treefmt-config = { projectRootFile = "flake.nix"; programs.nixfmt.enable = true; programs.ktfmt.enable = true; }; forAllSystems = fn: nixpkgs.lib.genAttrs systems ( system: fn rec { pkgs = nixpkgs.legacyPackages.${system}; treefmt-eval = treefmt-nix.lib.evalModule pkgs treefmt-config; } ); in { formatter = forAllSystems ({ treefmt-eval, ... }: treefmt-eval.config.build.wrapper); devShells = forAllSystems ( { pkgs, ... }: { default = pkgs.mkShell { packages = with pkgs; [ jdk21 gradle kotlin ]; shellHook = '' export JAVA_HOME=${pkgs.jdk21} if [ -z "$ANDROID_HOME" ]; then echo "warning: ANDROID_HOME not set - Android SDK must be available globally" fi ''; }; } ); checks = forAllSystems ( { pkgs, treefmt-eval, ... }: { formatting = treefmt-eval.config.build.check self; } ); }; }