# SPDX-FileCopyrightText: 2022 Richard Brežák # # SPDX-License-Identifier: LGPL-3.0-or-later { inputs = { nixpkgs-stable.url = "github:NixOS/nixpkgs?ref=nixos-22.11"; nixpkgs.url = "sourcehut:~magic_rb/nixpkgs"; nixpkgs-master.url = "github:NixOS/nixpkgs?ref=master"; nixpkgs-hashicorp.url = "sourcehut:~magic_rb/nixpkgs?ref=nixos-unstable"; nixpkgs-firefox.url = "github:NixOS/nixpkgs?ref=nixos-unstable"; nixpkgs-discord.url = "github:NixOS/nixpkgs?ref=nixos-unstable"; nixinate.url = "github:MagicRB/nixinate"; nixinate.inputs.nixpkgs.follows = "nixpkgs"; home-manager.url = "github:nix-community/home-manager?ref=master"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.utils.follows = "flake-utils"; nixng.url = "github:nix-community/NixNG"; nixng.inputs.nixpkgs.follows = "nixpkgs"; poetry2nix.url = "github:nix-community/poetry2nix"; poetry2nix.inputs.nixpkgs.follows = "nixpkgs"; poetry2nix.inputs.flake-utils.follows = "flake-utils"; nix.url = "github:NixOS/nix"; nix.inputs.nixpkgs.follows = "nixpkgs"; deploy-rs.url = "github:serokell/deploy-rs"; deploy-rs.inputs.nixpkgs.follows = "nixpkgs"; deploy-rs.inputs.utils.follows = "flake-utils"; deploy-rs.inputs.flake-compat.follows = "flake-compat"; nomad-driver-containerd-nix.url = "github:MagicRB/nomad-driver-containerd-nix"; # "git+https://gitea.redalder.org/Magic_RB/nomad-driver-containerd-nix"; nomad-driver-containerd-nix.inputs.nixpkgs.follows = "nixpkgs"; nix-gaming.url = "github:fufexan/nix-gaming"; nix-gaming.inputs.nixpkgs.follows = "nixpkgs"; emacs-overlay.url = "github:nix-community/emacs-overlay"; emacs-overlay.inputs.nixpkgs.follows = "nixpkgs"; emacs-overlay.inputs.flake-utils.follows = "flake-utils"; flake-parts.url = "github:hercules-ci/flake-parts"; flake-utils.url = "github:numtide/flake-utils"; dream2nix.url = "github:nix-community/dream2nix"; dream2nix.inputs.nixpkgs.follows = "nixpkgs"; dream2nix.inputs.alejandra.follows = "alejandra"; dream2nix.inputs.pre-commit-hooks.follows = "pre-commit-hooks"; dream2nix.inputs.flake-utils-pre-commit.follows = "flake-utils"; alejandra.url = "github:kamadorueda/alejandra"; alejandra.inputs.nixpkgs.follows = "nixpkgs"; alejandra.inputs.fenix.follows = "fenix"; alejandra.inputs.flakeCompat.follows = "flake-compat"; pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; pre-commit-hooks.inputs.nixpkgs.follows = "nixpkgs"; pre-commit-hooks.inputs.flake-utils.follows = "flake-utils"; nil.url = "github:oxalica/nil"; nil.inputs.nixpkgs.follows = "nixpkgs"; nil.inputs.flake-utils.follows = "flake-utils"; serokell-nix.url = "github:serokell/serokell.nix?ref=magicrb-allow-wildcards-with-no-main"; serokell-nix.inputs.flake-compat.follows = "flake-compat"; serokell-nix.inputs.gitignore-nix.follows = "gitignore-nix"; webcord.url = "github:SpacingBat3/WebCord"; webcord.flake = false; fenix.url = "github:nix-community/fenix"; fenix.flake = false; devshell.url = "github:numtide/devshell"; devshell.flake = false; gomod2nix.url = "github:tweag/gomod2nix"; gomod2nix.flake = false; mach-nix.url = "github:DavHau/mach-nix"; mach-nix.flake = false; crane.url = "github:ipetkov/crane"; crane.flake = false; flake-compat.url = "github:edolstra/flake-compat"; flake-compat.flake = false; emacs.url = "sourcehut:~magic_rb/emacs"; emacs.flake = false; vtermModule.url = "github:akermu/emacs-libvterm"; vtermModule.flake = false; secret.url = "path:///var/empty"; secret.flake = false; qmk.url = "https://github.com/qmk/qmk_firmware"; qmk.flake = false; qmk.type = "git"; qmk.ref = "master"; qmk.submodules = true; bootloadHID.url = "github:whiteneon/bootloadHID"; bootloadHID.flake = false; hidapitester.url = "github:todbot/hidapitester"; hidapitester.flake = false; yusdacra-dotfiles.url = "github:yusdacra/nixos-config"; yusdacra-dotfiles.flake = false; fufexan-dotfiles.url = "github:fufexan/dotfiles"; fufexan-dotfiles.flake = false; ical2org.url = "git+https://git.sr.ht/~magic_rb/ical2orgpy"; ical2org.flake = false; udp-over-tcp.url = "github:mullvad/udp-over-tcp"; udp-over-tcp.flake = false; gitignore-nix.url = "github:hercules-ci/gitignore.nix"; gitignore-nix.flake = false; uterranix.url = "path:///home/main/uterranix"; uterranix.inputs.flake-parts.follows = "flake-parts"; uterranix.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = inputs@{ self, flake-parts, nixpkgs, nixinate, ... }: let systems = ["x86_64-linux" "aarch64-linux"]; flake = flake-parts.lib.mkFlake { inherit inputs; specialArgs = { roots.nixos = ./. + "/nixos"; roots.flake = ./.; roots.home-manager = ./. + "/home-manager"; }; } { inherit systems; imports = [ inputs.uterranix.flakeModule ./modules ]; uterranix.config = ./terranix/default.nix; uterranix.terraform = pkgs: let hpkgs = inputs.nixpkgs-hashicorp.legacyPackages.${pkgs.stdenv.system}; in hpkgs.terraform.withPlugins (p: [ p.consul ((p.nomad.override { hash = "sha256-oHY+jM4JQgLlE1wd+/H9H8H2g0e9ZuxI6OMlz3Izfjg="; vendorHash = "sha256-zVU7zhKfWmFLdhsK9oQkSxCW7B7ctzD/B0DvzU+Wnyg="; mkProviderGoModule = (args: hpkgs.buildGoModule (args // { overrideModAttrs = old: { preBuild = '' go get github.com/hashicorp/nomad go get github.com/hashicorp/nomad/api ''; postInstall = '' cp go.mod go.sum $out/ ''; }; })); }).overrideAttrs (old: { postConfigure = '' cp vendor/{go.mod,go.sum} . ''; })) p.local (p.vault.overrideAttrs (old: { patches = [ ./0001-Allow-null-in-authMountTuneSchema.patch ]; })) p.random p.null (hpkgs.terraform.plugins.mkProvider { owner = "MagicRB"; repo = "terraform-provider-influxdb-v2"; rev = "4f10e465f9526b47d1ef97a8f2e109aa85a7d647"; version = "0.4.6"; hash = "sha256-/IQoA1CwYIafHbHKSZq7pZKFxefgd09fm0lnBW3r11Q="; vendorHash = "sha256-g7Njs7psHFFSWk44CiV+blLrzpnB+L9HgMTx3lLMA8Q="; provider-source-address = "registry.terraform.io/MagicRB/influxdb-v2"; }) ] ); }; in flake // { apps = nixpkgs.lib.genAttrs systems (system: (nixinate.nixinate.${system} self) // flake.apps.${system} ); }; }