A macOS utility to track home-manager JJ repo status
1{
2 description = "HomeManagerStatus — macOS menu bar app and CLI for jj repo status";
3
4 inputs = {
5 nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
6 flake-parts.url = "github:hercules-ci/flake-parts";
7 treefmt-nix = {
8 url = "github:numtide/treefmt-nix";
9 inputs.nixpkgs.follows = "nixpkgs";
10 };
11 };
12
13 outputs =
14 inputs:
15 inputs.flake-parts.lib.mkFlake { inherit inputs; } {
16 systems = [
17 "aarch64-darwin"
18 "x86_64-darwin"
19 "x86_64-linux"
20 ];
21
22 imports = [
23 inputs.treefmt-nix.flakeModule
24 ];
25
26 flake = {
27 homeManagerModules.default = import ./nix/modules/home-manager.nix;
28 homeManagerModules.jj-home-manager-status = import ./nix/modules/home-manager.nix;
29 };
30
31 perSystem =
32 {
33 pkgs,
34 lib,
35 self',
36 ...
37 }:
38 {
39 packages =
40 lib.packagesFromDirectoryRecursive {
41 callPackage = pkgs.callPackage;
42 directory = ./nix/pkgs;
43 }
44 // lib.optionalAttrs pkgs.stdenv.hostPlatform.isDarwin {
45 default = self'.packages.app;
46 };
47
48 checks = {
49 hm-status-integration = self'.packages.hm-status.tests.integration;
50 };
51
52 treefmt = {
53 projectRootFile = "flake.nix";
54 programs = {
55 nixfmt.enable = true;
56 shfmt.enable = true;
57 swift-format.enable = true;
58 };
59 };
60
61 };
62 };
63}