default.nix 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. { inputs
  2. , outputs
  3. ,
  4. }:
  5. let
  6. inherit (inputs)
  7. darwin
  8. home-manager
  9. nixpkgs
  10. nixpkgs-darwin
  11. ;
  12. inherit (nixpkgs) lib;
  13. isDarwin = system: builtins.elem "darwin" (builtins.split "-" system);
  14. in
  15. rec {
  16. mkSystem =
  17. { system
  18. , modules ? [ ]
  19. ,
  20. }:
  21. lib.nixosSystem {
  22. inherit system modules;
  23. specialArgs = { inherit inputs outputs; };
  24. };
  25. mkDarwin =
  26. { system
  27. , modules ? [ ]
  28. ,
  29. }:
  30. darwin.lib.darwinSystem {
  31. inherit system modules;
  32. specialArgs = { inherit inputs outputs; };
  33. };
  34. mkHome =
  35. { system
  36. , modules ? [ ]
  37. ,
  38. }:
  39. home-manager.lib.homeManagerConfiguration {
  40. inherit modules;
  41. pkgs = pkgsFor.${system};
  42. extraSpecialArgs = {
  43. inherit inputs outputs;
  44. isDarwin = isDarwin system;
  45. };
  46. };
  47. allSystems = [
  48. "x86_64-linux"
  49. "x86_64-darwin"
  50. "aarch64-linux"
  51. "aarch64-darwin"
  52. ];
  53. eachSystem = f: lib.genAttrs allSystems (system: f system pkgsFor.${system});
  54. pkgsFor = lib.genAttrs allSystems (
  55. system:
  56. let
  57. importFor =
  58. nixpkgs:
  59. import nixpkgs {
  60. inherit system;
  61. config.allowUnfree = true;
  62. overlays = [
  63. outputs.overlays.additions
  64. outputs.overlays.modifications
  65. outputs.overlays.unstable-packages
  66. ];
  67. };
  68. in
  69. if isDarwin system then importFor nixpkgs-darwin else importFor nixpkgs
  70. );
  71. print =
  72. text:
  73. let
  74. json = builtins.toJSON text;
  75. in
  76. builtins.trace (builtins.fromJSON json) (builtins.fromJSON json);
  77. }