default.nix 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. {
  2. inputs,
  3. outputs,
  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. {
  18. system,
  19. modules ? [ ],
  20. }:
  21. lib.nixosSystem {
  22. inherit system modules;
  23. specialArgs = { inherit inputs outputs; };
  24. };
  25. mkDarwin =
  26. {
  27. system,
  28. modules ? [ ],
  29. }:
  30. darwin.lib.darwinSystem {
  31. inherit system modules;
  32. specialArgs = { inherit inputs outputs; };
  33. };
  34. mkHome =
  35. {
  36. system,
  37. modules ? [ ],
  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 pkgsFor.${system});
  54. pkgsFor = lib.genAttrs allSystems (
  55. system:
  56. if isDarwin system then
  57. import nixpkgs {
  58. inherit system;
  59. config.allowUnfree = true;
  60. overlays = [
  61. outputs.overlays.additions
  62. outputs.overlays.modifications
  63. outputs.overlays.unstable-packages
  64. ];
  65. }
  66. else
  67. import nixpkgs-darwin {
  68. inherit system;
  69. config.allowUnfree = true;
  70. overlays = [
  71. outputs.overlays.additions
  72. outputs.overlays.modifications
  73. outputs.overlays.unstable-packages
  74. ];
  75. }
  76. );
  77. print =
  78. text:
  79. let
  80. json = builtins.toJSON text;
  81. in
  82. builtins.trace (builtins.fromJSON json) (builtins.fromJSON json);
  83. }