From 26b2ee731104ffef3beb8e259367f9be18b78ebf Mon Sep 17 00:00:00 2001 From: Notarin Steele <424c414e4b@gmail.com> Date: Wed, 26 Nov 2025 03:55:36 -0500 Subject: [PATCH] feat: added formatter to flake Added a formatter to the repo in the flake. Currently, it only formats Nix files, however it may be expanded to format other files should that be of interest. Alongside this, also formatted the Nix files in the repo to be compliant with the new formatter. Also, added the same formatter to the android flake. Technically this is slightly non-DRY, but I have much bigger gripes about the Android flake, so this can be addressed when/if that's ever addressed. --- android/flake.nix | 34 +++++++++++++++++--------- flake.nix | 61 ++++++++++++++++++++++++++++------------------- 2 files changed, 59 insertions(+), 36 deletions(-) diff --git a/android/flake.nix b/android/flake.nix index 326794ad..179ef8d1 100644 --- a/android/flake.nix +++ b/android/flake.nix @@ -9,14 +9,22 @@ zig.url = "github:mitchellh/zig-overlay"; }; - outputs = { self, nixpkgs, devshell, flake-utils, android, zig }: + outputs = + { + self, + nixpkgs, + devshell, + flake-utils, + android, + zig, + }: { overlay = final: prev: { inherit (self.packages.${final.system}) android-sdk zig; }; } - // - flake-utils.lib.eachSystem [ "x86_64-linux" ] (system: + // flake-utils.lib.eachSystem [ "x86_64-linux" ] ( + system: let pkgs = import nixpkgs { inherit system; @@ -30,17 +38,21 @@ { packages = { zig = zig.packages.${system}.master; - android-sdk = android.sdk.${system} (sdkPkgs: with sdkPkgs; [ - # Useful packages for building and testing. - build-tools-33-0-1 - cmdline-tools-latest - platform-tools - platforms-android-21 - ndk-25-1-8937393 - ]); + android-sdk = android.sdk.${system} ( + sdkPkgs: with sdkPkgs; [ + # Useful packages for building and testing. + build-tools-33-0-1 + cmdline-tools-latest + platform-tools + platforms-android-21 + ndk-25-1-8937393 + ] + ); }; devShell = import ./devshell.nix { inherit pkgs; }; + + formatter = pkgs.nixfmt-tree; } ); } diff --git a/flake.nix b/flake.nix index 1f120611..9795aa35 100644 --- a/flake.nix +++ b/flake.nix @@ -4,15 +4,22 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; - + zig-overlay = { url = "github:mitchellh/zig-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; }; - outputs = { nixpkgs, flake-utils, zig-overlay, ... }: - flake-utils.lib.eachDefaultSystem (system: + outputs = + { + nixpkgs, + flake-utils, + zig-overlay, + ... + }: + flake-utils.lib.eachDefaultSystem ( + system: let pkgs = import nixpkgs { inherit system; @@ -23,21 +30,21 @@ zigPkg = pkgs.stdenv.mkDerivation rec { pname = "zig"; version = "0.14.1"; - + src = pkgs.fetchurl { url = "https://ziglang.org/download/${version}/zig-x86_64-linux-${version}.tar.xz"; sha256 = "sha256-e+ar3r+pcMYTjRZbNI0EZOhPFvUx5xyyDA4FL64djI0="; }; - + installPhase = '' mkdir -p $out/bin cp zig $out/bin/ chmod +x $out/bin/zig - + mkdir -p $out/lib cp -r lib/* $out/lib/ ''; - + dontFixup = true; }; in @@ -46,11 +53,11 @@ buildInputs = with pkgs; [ # Core development tools zigPkg - + # Build tools gnumake pkg-config - + # GTK and related libraries for Linux backend gtk3 gtk4 @@ -58,27 +65,27 @@ cairo pango gdk-pixbuf - + # Android development (optional) android-tools - + # OpenGL/Graphics libGL libGLU mesa - + # Audio libraries alsa-lib pipewire - + # Development utilities gdb valgrind strace - + # Code formatting and linting zls # Zig Language Server - + # Version control git ]; @@ -119,19 +126,23 @@ echo " zig build transition" echo " zig build weather" echo "" - + # Set up pkg-config paths for GTK export PKG_CONFIG_PATH="${pkgs.gtk3}/lib/pkgconfig:${pkgs.gtk4}/lib/pkgconfig:$PKG_CONFIG_PATH" - + # Set up library paths - export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath [ - pkgs.gtk3 - pkgs.gtk4 - pkgs.libGL - pkgs.mesa - pkgs.alsa-lib - ]}:$LD_LIBRARY_PATH" + export LD_LIBRARY_PATH="${ + pkgs.lib.makeLibraryPath [ + pkgs.gtk3 + pkgs.gtk4 + pkgs.libGL + pkgs.mesa + pkgs.alsa-lib + ] + }:$LD_LIBRARY_PATH" ''; }; - }); + formatter = pkgs.nixfmt-tree; + } + ); }