From e7d1b0f7bd5d0f5ac4ed5a85b0cea9cf2ca7a36c Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Mon, 18 Nov 2024 21:22:32 -0600 Subject: [PATCH] Apply nixfmt to the whole tree --- distros/almalinux/default.nix | 21 +- distros/alpine/default.nix | 21 +- distros/archlinux/default.nix | 12 +- distros/centos-stream/default.nix | 21 +- distros/centos/default.nix | 12 +- distros/debian/default.nix | 45 +- distros/default.nix | 22 +- distros/fedora/default.nix | 57 +-- distros/nixos/23.05/http/configuration.nix | 128 +++--- distros/nixos/23.05/http/flake.nix | 23 +- distros/nixos/23.05/http/ga-kvm.nix | 5 +- distros/nixos/23.05/http/ga-microsoft.nix | 6 +- distros/nixos/23.05/http/ga-oracle.nix | 12 +- distros/nixos/23.05/http/ga-qemu.nix | 6 +- distros/nixos/23.11/http/configuration.nix | 128 +++--- distros/nixos/23.11/http/flake.nix | 23 +- distros/nixos/23.11/http/ga-kvm.nix | 5 +- distros/nixos/23.11/http/ga-microsoft.nix | 6 +- distros/nixos/23.11/http/ga-oracle.nix | 12 +- distros/nixos/23.11/http/ga-qemu.nix | 6 +- distros/nixos/24.05/http/configuration.nix | 128 +++--- distros/nixos/24.05/http/flake.nix | 23 +- distros/nixos/24.05/http/ga-kvm.nix | 5 +- distros/nixos/24.05/http/ga-microsoft.nix | 6 +- distros/nixos/24.05/http/ga-oracle.nix | 8 +- distros/nixos/24.05/http/ga-qemu.nix | 6 +- distros/nixos/default.nix | 30 +- distros/opensuse/default.nix | 39 +- distros/rockylinux/default.nix | 21 +- distros/ubuntu/default.nix | 57 +-- flake.lock | 53 +-- flake.nix | 474 ++++++++++++--------- nix/cache.nix | 77 ++-- nix/validate.nix | 38 +- 34 files changed, 822 insertions(+), 714 deletions(-) mode change 120000 => 100644 distros/nixos/23.05/http/ga-kvm.nix mode change 120000 => 100644 distros/nixos/23.11/http/ga-kvm.nix mode change 120000 => 100644 distros/nixos/24.05/http/ga-kvm.nix diff --git a/distros/almalinux/default.nix b/distros/almalinux/default.nix index a0837c6..d17f358 100644 --- a/distros/almalinux/default.nix +++ b/distros/almalinux/default.nix @@ -1,9 +1,12 @@ -[ { - version = "8"; - arch = "amd64"; - eol = true; -} { - version = "9"; - arch = "amd64"; - eol = false; -} ] +[ + { + version = "8"; + arch = "amd64"; + eol = true; + } + { + version = "9"; + arch = "amd64"; + eol = false; + } +] diff --git a/distros/alpine/default.nix b/distros/alpine/default.nix index 1f4e7ce..97f022f 100644 --- a/distros/alpine/default.nix +++ b/distros/alpine/default.nix @@ -1,9 +1,12 @@ -[ { - version = "3.19.0"; - arch = "amd64"; - eol = false; -} { - version = "3.20"; - arch = "amd64"; - eol = false; -} ] +[ + { + version = "3.19.0"; + arch = "amd64"; + eol = false; + } + { + version = "3.20"; + arch = "amd64"; + eol = false; + } +] diff --git a/distros/archlinux/default.nix b/distros/archlinux/default.nix index 4fecf6e..cdad4cb 100644 --- a/distros/archlinux/default.nix +++ b/distros/archlinux/default.nix @@ -1,5 +1,7 @@ -[ { - version = "rolling"; - arch = "amd64"; - eol = false; -} ] +[ + { + version = "rolling"; + arch = "amd64"; + eol = false; + } +] diff --git a/distros/centos-stream/default.nix b/distros/centos-stream/default.nix index a0837c6..d17f358 100644 --- a/distros/centos-stream/default.nix +++ b/distros/centos-stream/default.nix @@ -1,9 +1,12 @@ -[ { - version = "8"; - arch = "amd64"; - eol = true; -} { - version = "9"; - arch = "amd64"; - eol = false; -} ] +[ + { + version = "8"; + arch = "amd64"; + eol = true; + } + { + version = "9"; + arch = "amd64"; + eol = false; + } +] diff --git a/distros/centos/default.nix b/distros/centos/default.nix index e8a0316..95ea1af 100644 --- a/distros/centos/default.nix +++ b/distros/centos/default.nix @@ -1,5 +1,7 @@ -[ { - version = "7"; - arch = "amd64"; - eol = true; -} ] +[ + { + version = "7"; + arch = "amd64"; + eol = true; + } +] diff --git a/distros/debian/default.nix b/distros/debian/default.nix index da2d6c8..faa6d88 100644 --- a/distros/debian/default.nix +++ b/distros/debian/default.nix @@ -1,20 +1,25 @@ -[ { - version = "9"; - arch = "amd64"; - eol = true; -} { - version = "10"; - arch = "amd64"; - eol = true; -} { - version = "11"; - arch = "amd64"; - eol = false; -} { - version = "12"; - arch = "amd64"; - eol = false; - exclude = [ - "virtualbox-iso" - ]; -} ] +[ + { + version = "9"; + arch = "amd64"; + eol = true; + } + { + version = "10"; + arch = "amd64"; + eol = true; + } + { + version = "11"; + arch = "amd64"; + eol = false; + } + { + version = "12"; + arch = "amd64"; + eol = false; + exclude = [ + "virtualbox-iso" + ]; + } +] diff --git a/distros/default.nix b/distros/default.nix index 0fd1bf5..0b6dbcf 100644 --- a/distros/default.nix +++ b/distros/default.nix @@ -1,13 +1,13 @@ { - almalinux = import ./almalinux; - alpine = import ./alpine; - archlinux = import ./archlinux; - centos = import ./centos; - centos-stream = import ./centos-stream; - debian = import ./debian; - fedora = import ./fedora; - nixos = import ./nixos; - opensuse = import ./opensuse; - rockylinux = import ./rockylinux; - ubuntu = import ./ubuntu; + almalinux = import ./almalinux; + alpine = import ./alpine; + archlinux = import ./archlinux; + centos = import ./centos; + centos-stream = import ./centos-stream; + debian = import ./debian; + fedora = import ./fedora; + nixos = import ./nixos; + opensuse = import ./opensuse; + rockylinux = import ./rockylinux; + ubuntu = import ./ubuntu; } diff --git a/distros/fedora/default.nix b/distros/fedora/default.nix index 1df116d..59e858b 100644 --- a/distros/fedora/default.nix +++ b/distros/fedora/default.nix @@ -1,25 +1,32 @@ -[ { - version = "37"; - arch = "amd64"; - eol = true; -} { - version = "38"; - arch = "amd64"; - eol = true; -} { - version = "39"; - arch = "amd64"; - eol = false; -} { - version = "40"; - arch = "amd64"; - eol = false; -} { - version = "41"; - arch = "amd64"; - eol = false; -} { - version = "rawhide"; - arch = "amd64"; - eol = false; -} ] +[ + { + version = "37"; + arch = "amd64"; + eol = true; + } + { + version = "38"; + arch = "amd64"; + eol = true; + } + { + version = "39"; + arch = "amd64"; + eol = false; + } + { + version = "40"; + arch = "amd64"; + eol = false; + } + { + version = "41"; + arch = "amd64"; + eol = false; + } + { + version = "rawhide"; + arch = "amd64"; + eol = false; + } +] diff --git a/distros/nixos/23.05/http/configuration.nix b/distros/nixos/23.05/http/configuration.nix index 6d769e0..3d96aa3 100644 --- a/distros/nixos/23.05/http/configuration.nix +++ b/distros/nixos/23.05/http/configuration.nix @@ -1,67 +1,75 @@ -{config, pkgs, lib, ...}: +{ + config, + pkgs, + lib, + ... +}: { - imports = [ - ./hardware-configuration.nix - ./guest-agent.nix - ]; + imports = [ + ./hardware-configuration.nix + ./guest-agent.nix + ]; - system.stateVersion = "23.05"; + system.stateVersion = "23.05"; - # Packages installed on the whole system - environment.systemPackages = with pkgs; [ - curl - nano - python3 - ]; - # Services that are running - services = { - openssh.enable = true; - #xserver.enable = true; - }; - # User setup - users.groups.vagrant = {}; - users.users.vagrant = { - isNormalUser = true; - group = "vagrant"; - extraGroups = [ "wheel" ]; - password = "vagrant"; - }; - security.sudo.extraRules = [ - { - users = [ "vagrant" ]; - groups = [ "vagrant" ]; - commands = [ - { command = "ALL"; options = [ "NOPASSWD" ]; } - ]; - } - ]; + # Packages installed on the whole system + environment.systemPackages = with pkgs; [ + curl + nano + python3 + ]; + # Services that are running + services = { + openssh.enable = true; + #xserver.enable = true; + }; + # User setup + users.groups.vagrant = { }; + users.users.vagrant = { + isNormalUser = true; + group = "vagrant"; + extraGroups = [ "wheel" ]; + password = "vagrant"; + }; + security.sudo.extraRules = [ + { + users = [ "vagrant" ]; + groups = [ "vagrant" ]; + commands = [ + { + command = "ALL"; + options = [ "NOPASSWD" ]; + } + ]; + } + ]; - boot.loader = { - systemd-boot = { - enable = true; - }; - efi.canTouchEfiVariables = true; - }; - networking = { - hostName = "vagrant"; - networkmanager.enable = true; - #proxy.default = "http://user:password@proxy:port/"; - #proxy.noProxy = "127.0.0.1,localhost,internal.domain"; - }; - time.timeZone = "UTC"; - - i18n.defaultLocale = "en_US.UTF-8"; - console = { - font = "Lat2-Terminux16"; - keyMap = lib.mkForce "us"; - useXkbConfig = true; - }; + boot.loader = { + systemd-boot = { + enable = true; + }; + efi.canTouchEfiVariables = true; + }; + networking = { + hostName = "vagrant"; + networkmanager.enable = true; + #proxy.default = "http://user:password@proxy:port/"; + #proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + }; + time.timeZone = "UTC"; - nix = { - package = pkgs.nixFlakes; - settings = { - experimental-features = "nix-command flakes"; - }; - }; + i18n.defaultLocale = "en_US.UTF-8"; + console = { + font = "Lat2-Terminux16"; + keyMap = lib.mkForce "us"; + useXkbConfig = true; + }; + + nix = { + package = pkgs.nixFlakes; + settings = { + experimental-features = "nix-command flakes"; + }; + }; } diff --git a/distros/nixos/23.05/http/flake.nix b/distros/nixos/23.05/http/flake.nix index f69c643..d3590cf 100644 --- a/distros/nixos/23.05/http/flake.nix +++ b/distros/nixos/23.05/http/flake.nix @@ -1,15 +1,16 @@ { - description = "A basic NixOS Vagrant install"; + description = "A basic NixOS Vagrant install"; - inputs = { - nixstable.url = "github:nixos/nixpkgs/nixos-23.05"; - }; + inputs = { + nixstable.url = "github:nixos/nixpkgs/nixos-23.05"; + }; - outputs = { nixstable, self, ... }@inputs: - { - nixosConfigurations.vagrant = nixstable.lib.nixosSystem { - system = "x86_64-linux"; - modules = [ ./configuration.nix ]; - }; - }; + outputs = + { nixstable, self, ... }@inputs: + { + nixosConfigurations.vagrant = nixstable.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ ./configuration.nix ]; + }; + }; } diff --git a/distros/nixos/23.05/http/ga-kvm.nix b/distros/nixos/23.05/http/ga-kvm.nix deleted file mode 120000 index 15276b3..0000000 --- a/distros/nixos/23.05/http/ga-kvm.nix +++ /dev/null @@ -1 +0,0 @@ -ga-qemu.nix \ No newline at end of file diff --git a/distros/nixos/23.05/http/ga-kvm.nix b/distros/nixos/23.05/http/ga-kvm.nix new file mode 100644 index 0000000..65105c0 --- /dev/null +++ b/distros/nixos/23.05/http/ga-kvm.nix @@ -0,0 +1,4 @@ +{ ... }: +{ + services.qemuGuest.enable = true; +} diff --git a/distros/nixos/23.05/http/ga-microsoft.nix b/distros/nixos/23.05/http/ga-microsoft.nix index a477797..f924009 100644 --- a/distros/nixos/23.05/http/ga-microsoft.nix +++ b/distros/nixos/23.05/http/ga-microsoft.nix @@ -1,4 +1,4 @@ -{...}: +{ ... }: { - virtualisation.hypervGuest.enable = true; -} \ No newline at end of file + virtualisation.hypervGuest.enable = true; +} diff --git a/distros/nixos/23.05/http/ga-oracle.nix b/distros/nixos/23.05/http/ga-oracle.nix index 06bc077..c81513e 100644 --- a/distros/nixos/23.05/http/ga-oracle.nix +++ b/distros/nixos/23.05/http/ga-oracle.nix @@ -1,7 +1,7 @@ -{...}: +{ ... }: { - virtualisation.virtualbox.guest = { - enable = true; - x11 = false; - }; -} \ No newline at end of file + virtualisation.virtualbox.guest = { + enable = true; + x11 = false; + }; +} diff --git a/distros/nixos/23.05/http/ga-qemu.nix b/distros/nixos/23.05/http/ga-qemu.nix index 7389b6d..65105c0 100644 --- a/distros/nixos/23.05/http/ga-qemu.nix +++ b/distros/nixos/23.05/http/ga-qemu.nix @@ -1,4 +1,4 @@ -{...}: +{ ... }: { - services.qemuGuest.enable = true; -} \ No newline at end of file + services.qemuGuest.enable = true; +} diff --git a/distros/nixos/23.11/http/configuration.nix b/distros/nixos/23.11/http/configuration.nix index 69667f4..5efd647 100644 --- a/distros/nixos/23.11/http/configuration.nix +++ b/distros/nixos/23.11/http/configuration.nix @@ -1,67 +1,75 @@ -{config, pkgs, lib, ...}: +{ + config, + pkgs, + lib, + ... +}: { - imports = [ - ./hardware-configuration.nix - ./guest-agent.nix - ]; + imports = [ + ./hardware-configuration.nix + ./guest-agent.nix + ]; - system.stateVersion = "23.11"; + system.stateVersion = "23.11"; - # Packages installed on the whole system - environment.systemPackages = with pkgs; [ - curl - nano - python3 - ]; - # Services that are running - services = { - openssh.enable = true; - #xserver.enable = true; - }; - # User setup - users.groups.vagrant = {}; - users.users.vagrant = { - isNormalUser = true; - group = "vagrant"; - extraGroups = [ "wheel" ]; - password = "vagrant"; - }; - security.sudo.extraRules = [ - { - users = [ "vagrant" ]; - groups = [ "vagrant" ]; - commands = [ - { command = "ALL"; options = [ "NOPASSWD" ]; } - ]; - } - ]; + # Packages installed on the whole system + environment.systemPackages = with pkgs; [ + curl + nano + python3 + ]; + # Services that are running + services = { + openssh.enable = true; + #xserver.enable = true; + }; + # User setup + users.groups.vagrant = { }; + users.users.vagrant = { + isNormalUser = true; + group = "vagrant"; + extraGroups = [ "wheel" ]; + password = "vagrant"; + }; + security.sudo.extraRules = [ + { + users = [ "vagrant" ]; + groups = [ "vagrant" ]; + commands = [ + { + command = "ALL"; + options = [ "NOPASSWD" ]; + } + ]; + } + ]; - boot.loader = { - systemd-boot = { - enable = true; - }; - efi.canTouchEfiVariables = true; - }; - networking = { - hostName = "vagrant"; - networkmanager.enable = true; - #proxy.default = "http://user:password@proxy:port/"; - #proxy.noProxy = "127.0.0.1,localhost,internal.domain"; - }; - time.timeZone = "UTC"; - - i18n.defaultLocale = "en_US.UTF-8"; - console = { - font = "Lat2-Terminux16"; - keyMap = lib.mkForce "us"; - useXkbConfig = true; - }; + boot.loader = { + systemd-boot = { + enable = true; + }; + efi.canTouchEfiVariables = true; + }; + networking = { + hostName = "vagrant"; + networkmanager.enable = true; + #proxy.default = "http://user:password@proxy:port/"; + #proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + }; + time.timeZone = "UTC"; - nix = { - package = pkgs.nixFlakes; - settings = { - experimental-features = "nix-command flakes"; - }; - }; + i18n.defaultLocale = "en_US.UTF-8"; + console = { + font = "Lat2-Terminux16"; + keyMap = lib.mkForce "us"; + useXkbConfig = true; + }; + + nix = { + package = pkgs.nixFlakes; + settings = { + experimental-features = "nix-command flakes"; + }; + }; } diff --git a/distros/nixos/23.11/http/flake.nix b/distros/nixos/23.11/http/flake.nix index 7994fc3..cbda5c6 100644 --- a/distros/nixos/23.11/http/flake.nix +++ b/distros/nixos/23.11/http/flake.nix @@ -1,15 +1,16 @@ { - description = "A basic NixOS Vagrant install"; + description = "A basic NixOS Vagrant install"; - inputs = { - nixstable.url = "github:nixos/nixpkgs/nixos-23.11"; - }; + inputs = { + nixstable.url = "github:nixos/nixpkgs/nixos-23.11"; + }; - outputs = { nixstable, self, ... }@inputs: - { - nixosConfigurations.vagrant = nixstable.lib.nixosSystem { - system = "x86_64-linux"; - modules = [ ./configuration.nix ]; - }; - }; + outputs = + { nixstable, self, ... }@inputs: + { + nixosConfigurations.vagrant = nixstable.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ ./configuration.nix ]; + }; + }; } diff --git a/distros/nixos/23.11/http/ga-kvm.nix b/distros/nixos/23.11/http/ga-kvm.nix deleted file mode 120000 index 15276b3..0000000 --- a/distros/nixos/23.11/http/ga-kvm.nix +++ /dev/null @@ -1 +0,0 @@ -ga-qemu.nix \ No newline at end of file diff --git a/distros/nixos/23.11/http/ga-kvm.nix b/distros/nixos/23.11/http/ga-kvm.nix new file mode 100644 index 0000000..65105c0 --- /dev/null +++ b/distros/nixos/23.11/http/ga-kvm.nix @@ -0,0 +1,4 @@ +{ ... }: +{ + services.qemuGuest.enable = true; +} diff --git a/distros/nixos/23.11/http/ga-microsoft.nix b/distros/nixos/23.11/http/ga-microsoft.nix index a477797..f924009 100644 --- a/distros/nixos/23.11/http/ga-microsoft.nix +++ b/distros/nixos/23.11/http/ga-microsoft.nix @@ -1,4 +1,4 @@ -{...}: +{ ... }: { - virtualisation.hypervGuest.enable = true; -} \ No newline at end of file + virtualisation.hypervGuest.enable = true; +} diff --git a/distros/nixos/23.11/http/ga-oracle.nix b/distros/nixos/23.11/http/ga-oracle.nix index 06bc077..c81513e 100644 --- a/distros/nixos/23.11/http/ga-oracle.nix +++ b/distros/nixos/23.11/http/ga-oracle.nix @@ -1,7 +1,7 @@ -{...}: +{ ... }: { - virtualisation.virtualbox.guest = { - enable = true; - x11 = false; - }; -} \ No newline at end of file + virtualisation.virtualbox.guest = { + enable = true; + x11 = false; + }; +} diff --git a/distros/nixos/23.11/http/ga-qemu.nix b/distros/nixos/23.11/http/ga-qemu.nix index 7389b6d..65105c0 100644 --- a/distros/nixos/23.11/http/ga-qemu.nix +++ b/distros/nixos/23.11/http/ga-qemu.nix @@ -1,4 +1,4 @@ -{...}: +{ ... }: { - services.qemuGuest.enable = true; -} \ No newline at end of file + services.qemuGuest.enable = true; +} diff --git a/distros/nixos/24.05/http/configuration.nix b/distros/nixos/24.05/http/configuration.nix index 2cc98aa..d8cb29f 100644 --- a/distros/nixos/24.05/http/configuration.nix +++ b/distros/nixos/24.05/http/configuration.nix @@ -1,67 +1,75 @@ -{config, pkgs, lib, ...}: +{ + config, + pkgs, + lib, + ... +}: { - imports = [ - ./hardware-configuration.nix - ./guest-agent.nix - ]; + imports = [ + ./hardware-configuration.nix + ./guest-agent.nix + ]; - system.stateVersion = "24.05"; + system.stateVersion = "24.05"; - # Packages installed on the whole system - environment.systemPackages = with pkgs; [ - curl - nano - python3 - ]; - # Services that are running - services = { - openssh.enable = true; - #xserver.enable = true; - }; - # User setup - users.groups.vagrant = {}; - users.users.vagrant = { - isNormalUser = true; - group = "vagrant"; - extraGroups = [ "wheel" ]; - password = "vagrant"; - }; - security.sudo.extraRules = [ - { - users = [ "vagrant" ]; - groups = [ "vagrant" ]; - commands = [ - { command = "ALL"; options = [ "NOPASSWD" ]; } - ]; - } - ]; + # Packages installed on the whole system + environment.systemPackages = with pkgs; [ + curl + nano + python3 + ]; + # Services that are running + services = { + openssh.enable = true; + #xserver.enable = true; + }; + # User setup + users.groups.vagrant = { }; + users.users.vagrant = { + isNormalUser = true; + group = "vagrant"; + extraGroups = [ "wheel" ]; + password = "vagrant"; + }; + security.sudo.extraRules = [ + { + users = [ "vagrant" ]; + groups = [ "vagrant" ]; + commands = [ + { + command = "ALL"; + options = [ "NOPASSWD" ]; + } + ]; + } + ]; - boot.loader = { - systemd-boot = { - enable = true; - }; - efi.canTouchEfiVariables = true; - }; - networking = { - hostName = "vagrant"; - networkmanager.enable = true; - #proxy.default = "http://user:password@proxy:port/"; - #proxy.noProxy = "127.0.0.1,localhost,internal.domain"; - }; - time.timeZone = "UTC"; - - i18n.defaultLocale = "en_US.UTF-8"; - console = { - font = "Lat2-Terminux16"; - keyMap = lib.mkForce "us"; - useXkbConfig = true; - }; + boot.loader = { + systemd-boot = { + enable = true; + }; + efi.canTouchEfiVariables = true; + }; + networking = { + hostName = "vagrant"; + networkmanager.enable = true; + #proxy.default = "http://user:password@proxy:port/"; + #proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + }; + time.timeZone = "UTC"; - nix = { - package = pkgs.nixFlakes; - settings = { - experimental-features = "nix-command flakes"; - }; - }; + i18n.defaultLocale = "en_US.UTF-8"; + console = { + font = "Lat2-Terminux16"; + keyMap = lib.mkForce "us"; + useXkbConfig = true; + }; + + nix = { + package = pkgs.nixFlakes; + settings = { + experimental-features = "nix-command flakes"; + }; + }; } diff --git a/distros/nixos/24.05/http/flake.nix b/distros/nixos/24.05/http/flake.nix index f8b0e18..1dabf97 100644 --- a/distros/nixos/24.05/http/flake.nix +++ b/distros/nixos/24.05/http/flake.nix @@ -1,15 +1,16 @@ { - description = "A basic NixOS Vagrant install"; + description = "A basic NixOS Vagrant install"; - inputs = { - nixstable.url = "github:nixos/nixpkgs/nixos-24.05"; - }; + inputs = { + nixstable.url = "github:nixos/nixpkgs/nixos-24.05"; + }; - outputs = { nixstable, self, ... }@inputs: - { - nixosConfigurations.vagrant = nixstable.lib.nixosSystem { - system = "x86_64-linux"; - modules = [ ./configuration.nix ]; - }; - }; + outputs = + { nixstable, self, ... }@inputs: + { + nixosConfigurations.vagrant = nixstable.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ ./configuration.nix ]; + }; + }; } diff --git a/distros/nixos/24.05/http/ga-kvm.nix b/distros/nixos/24.05/http/ga-kvm.nix deleted file mode 120000 index 15276b3..0000000 --- a/distros/nixos/24.05/http/ga-kvm.nix +++ /dev/null @@ -1 +0,0 @@ -ga-qemu.nix \ No newline at end of file diff --git a/distros/nixos/24.05/http/ga-kvm.nix b/distros/nixos/24.05/http/ga-kvm.nix new file mode 100644 index 0000000..65105c0 --- /dev/null +++ b/distros/nixos/24.05/http/ga-kvm.nix @@ -0,0 +1,4 @@ +{ ... }: +{ + services.qemuGuest.enable = true; +} diff --git a/distros/nixos/24.05/http/ga-microsoft.nix b/distros/nixos/24.05/http/ga-microsoft.nix index a477797..f924009 100644 --- a/distros/nixos/24.05/http/ga-microsoft.nix +++ b/distros/nixos/24.05/http/ga-microsoft.nix @@ -1,4 +1,4 @@ -{...}: +{ ... }: { - virtualisation.hypervGuest.enable = true; -} \ No newline at end of file + virtualisation.hypervGuest.enable = true; +} diff --git a/distros/nixos/24.05/http/ga-oracle.nix b/distros/nixos/24.05/http/ga-oracle.nix index 6f304b0..e274dac 100644 --- a/distros/nixos/24.05/http/ga-oracle.nix +++ b/distros/nixos/24.05/http/ga-oracle.nix @@ -1,6 +1,6 @@ -{...}: +{ ... }: { - virtualisation.virtualbox.guest = { - enable = true; - }; + virtualisation.virtualbox.guest = { + enable = true; + }; } diff --git a/distros/nixos/24.05/http/ga-qemu.nix b/distros/nixos/24.05/http/ga-qemu.nix index 7389b6d..65105c0 100644 --- a/distros/nixos/24.05/http/ga-qemu.nix +++ b/distros/nixos/24.05/http/ga-qemu.nix @@ -1,4 +1,4 @@ -{...}: +{ ... }: { - services.qemuGuest.enable = true; -} \ No newline at end of file + services.qemuGuest.enable = true; +} diff --git a/distros/nixos/default.nix b/distros/nixos/default.nix index 35e8b4a..a308c55 100644 --- a/distros/nixos/default.nix +++ b/distros/nixos/default.nix @@ -1,13 +1,17 @@ -[ { - version = "23.05"; - arch = "amd64"; - eol = true; -} { - version = "23.11"; - arch = "amd64"; - eol = true; -} { - version = "24.05"; - arch = "amd64"; - eol = false; -} ] +[ + { + version = "23.05"; + arch = "amd64"; + eol = true; + } + { + version = "23.11"; + arch = "amd64"; + eol = true; + } + { + version = "24.05"; + arch = "amd64"; + eol = false; + } +] diff --git a/distros/opensuse/default.nix b/distros/opensuse/default.nix index d44b945..a67d93e 100644 --- a/distros/opensuse/default.nix +++ b/distros/opensuse/default.nix @@ -1,17 +1,22 @@ -[ { - version = "15.5"; - arch = "amd64"; - eol = false; -} { - version = "15.6"; - arch = "amd64"; - eol = false; -} { - version = "16.0"; - arch = "amd64"; - eol = true; # Not yet released, and bugged at the moment -} { - version = "tumbleweed"; - arch = "amd64"; - eol = false; -} ] +[ + { + version = "15.5"; + arch = "amd64"; + eol = false; + } + { + version = "15.6"; + arch = "amd64"; + eol = false; + } + { + version = "16.0"; + arch = "amd64"; + eol = true; # Not yet released, and bugged at the moment + } + { + version = "tumbleweed"; + arch = "amd64"; + eol = false; + } +] diff --git a/distros/rockylinux/default.nix b/distros/rockylinux/default.nix index a0837c6..d17f358 100644 --- a/distros/rockylinux/default.nix +++ b/distros/rockylinux/default.nix @@ -1,9 +1,12 @@ -[ { - version = "8"; - arch = "amd64"; - eol = true; -} { - version = "9"; - arch = "amd64"; - eol = false; -} ] +[ + { + version = "8"; + arch = "amd64"; + eol = true; + } + { + version = "9"; + arch = "amd64"; + eol = false; + } +] diff --git a/distros/ubuntu/default.nix b/distros/ubuntu/default.nix index e86e7ca..deb0257 100644 --- a/distros/ubuntu/default.nix +++ b/distros/ubuntu/default.nix @@ -1,25 +1,32 @@ -[ { - version = "18.04"; - arch = "amd64"; - eol = true; -} { - version = "20.04"; - arch = "amd64"; - eol = false; -} { - version = "22.04"; - arch = "amd64"; - eol = false; -} { - version = "23.10"; - arch = "amd64"; - eol = true; -} { - version = "24.04"; - arch = "amd64"; - eol = false; -} { - version = "24.10"; - arch = "amd64"; - eol = false; -} ] +[ + { + version = "18.04"; + arch = "amd64"; + eol = true; + } + { + version = "20.04"; + arch = "amd64"; + eol = false; + } + { + version = "22.04"; + arch = "amd64"; + eol = false; + } + { + version = "23.10"; + arch = "amd64"; + eol = true; + } + { + version = "24.04"; + arch = "amd64"; + eol = false; + } + { + version = "24.10"; + arch = "amd64"; + eol = false; + } +] diff --git a/flake.lock b/flake.lock index 4e87450..b3ca643 100644 --- a/flake.lock +++ b/flake.lock @@ -37,21 +37,6 @@ "type": "github" } }, - "flake-root": { - "locked": { - "lastModified": 1713493429, - "narHash": "sha256-ztz8JQkI08tjKnsTpfLqzWoKFQF4JGu2LRz8bkdnYUk=", - "owner": "srid", - "repo": "flake-root", - "rev": "bc748b93b86ee76e2032eecda33440ceb2532fcd", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "flake-root", - "type": "github" - } - }, "flake-utils": { "inputs": { "systems": "systems" @@ -114,22 +99,6 @@ "type": "github" } }, - "nixpkgs_3": { - "locked": { - "lastModified": 1708475490, - "narHash": "sha256-g1v0TsWBQPX97ziznfJdWhgMyMGtoBFs102xSYO4syU=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "0e74ca98a74bc7270d28838369593635a5db3260", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "process-compose": { "locked": { "lastModified": 1718031437, @@ -149,10 +118,8 @@ "inputs": { "devshell": "devshell", "flake-parts": "flake-parts", - "flake-root": "flake-root", "nixpkgs": "nixpkgs_2", - "process-compose": "process-compose", - "treefmt-nix": "treefmt-nix" + "process-compose": "process-compose" } }, "systems": { @@ -169,24 +136,6 @@ "repo": "default", "type": "github" } - }, - "treefmt-nix": { - "inputs": { - "nixpkgs": "nixpkgs_3" - }, - "locked": { - "lastModified": 1718522839, - "narHash": "sha256-ULzoKzEaBOiLRtjeY3YoGFJMwWSKRYOic6VNw2UyTls=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "68eb1dc333ce82d0ab0c0357363ea17c31ea1f81", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 287801c..0d34da1 100644 --- a/flake.nix +++ b/flake.nix @@ -1,205 +1,281 @@ # github.com/brianmcgee has lots of great ideas for going above and beyond for this { - description = "Greg's homepage"; - inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; - devshell.url = "github:numtide/devshell"; - flake-parts.url = "github:hercules-ci/flake-parts"; - flake-root.url = "github:srid/flake-root"; - process-compose.url = "github:Platonic-Systems/process-compose-flake"; - treefmt-nix.url = "github:numtide/treefmt-nix"; - }; + description = "Greg's homepage"; + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + devshell.url = "github:numtide/devshell"; + flake-parts.url = "github:hercules-ci/flake-parts"; + process-compose.url = "github:Platonic-Systems/process-compose-flake"; + }; - outputs = { devshell, flake-parts, flake-root, process-compose, treefmt-nix, nixpkgs, ... }@inputs: let - lib = nixpkgs.lib; - providers = [ - "qemu" - "virtualbox-iso" - "hyperv-iso" - ]; - distros = import ./distros; - # Inserts the distro name into each element in the list - insertNames = lib.attrsets.mapAttrsToList (distro: val: (builtins.map (x: x // { inherit distro; }) val)) distros; - # Flattens all the distros into a single list - flat = lib.lists.flatten insertNames; - # Combines providers list with flattened list - withProviders = lib.attrsets.mapCartesianProduct - ({d, provider}: d // { inherit provider; }) - { d = flat; provider = providers; }; - active = builtins.filter (x: (x?eol) && (!x.eol)) withProviders; - name = d: "-${d.distro}-${d.arch}-${d.provider}-${d.version}"; - distroFile = d: "distros/${d.distro}/${d.version}/${d.arch}.pkrvars.hcl"; - cmd = d: '' - # This is a workaround for a goofy behavior in CI - if [ -e "''${PACKER_CONFIG_DIR}" ]; then - find "''${PACKER_CONFIG_DIR}" -name '*_linux_amd64' -exec chmod +x '{}' ";" - fi - packer init sources - packer build -only=${d.provider}.${d.arch} -var-file=${distroFile d}''; - in flake-parts.lib.mkFlake { inherit inputs; } - { - imports = [ - inputs.devshell.flakeModule - inputs.flake-root.flakeModule - inputs.treefmt-nix.flakeModule - ]; - flake = { - # Universal things - }; - systems = [ - "x86_64-linux" - "aarch64-linux" - ]; - perSystem = { config, pkgs, self', system, ... }: - { - _module.args.pkgs = import inputs.nixpkgs { - inherit system; - config.allowUnfree = true; - }; - # https://numtide.github.io/devshell/intro.html - devshells.default = { - # These commands will be shown in the motd that users read - # upon entering the shell - commands = [ { - package = self'.packages.cache; - category = "utils"; - help = "Downloads ISO files and adds them to the S3 bucket"; - } { - package = self'.packages.generate; - category = "utils"; - help = "Generate dynamic HCL files"; - } { - package = self'.packages.shellcheck; - category = "utils"; - help = "Run shellchecks"; - } { - package = self'.packages.validate; - category = "utils"; - help = "Validate all the files"; - } { - package = pkgs.vagrant; - category = "utils"; - help = "Vagrant to help with testing"; - } ] ++ (builtins.map (d: { package = self'.packages."build${name d}"; category = "builds"; }) withProviders); - env = [{ - name = "EFI_DIR"; - value = "${pkgs.OVMF.fd}/FV/"; - } { - name = "PACKER_CONFIG_DIR"; - value = "./packer_config"; - } { - name = "STORAGE_URL"; - value = "http://s3.thehellings.lan:9000"; - } ]; - }; + outputs = + { flake-parts, nixpkgs, ... }@inputs: + let + lib = nixpkgs.lib; + providers = [ + "qemu" + "virtualbox-iso" + "hyperv-iso" + ]; + distros = import ./distros; + # Inserts the distro name into each element in the list + insertNames = lib.attrsets.mapAttrsToList ( + distro: val: (builtins.map (x: x // { inherit distro; }) val) + ) distros; + # Flattens all the distros into a single list + flat = lib.lists.flatten insertNames; + # Combines providers list with flattened list + withProviders = lib.attrsets.mapCartesianProduct ({ d, provider }: d // { inherit provider; }) { + d = flat; + provider = providers; + }; + active = builtins.filter (x: (x ? eol) && (!x.eol)) withProviders; + name = d: "-${d.distro}-${d.arch}-${d.provider}-${d.version}"; + distroFile = d: "distros/${d.distro}/${d.version}/${d.arch}.pkrvars.hcl"; + cmd = d: '' + # This is a workaround for a goofy behavior in CI + if [ -e "''${PACKER_CONFIG_DIR}" ]; then + find "''${PACKER_CONFIG_DIR}" -name '*_linux_amd64' -exec chmod +x '{}' ";" + fi + packer init sources + packer build -only=${d.provider}.${d.arch} -var-file=${distroFile d}''; + in + flake-parts.lib.mkFlake { inherit inputs; } { + imports = [ + inputs.devshell.flakeModule + inputs.flake-root.flakeModule + inputs.treefmt-nix.flakeModule + ]; + flake = { + # Universal things + }; + systems = [ + "x86_64-linux" + "aarch64-linux" + ]; + perSystem = + { + pkgs, + self', + system, + ... + }@inputs': + { + _module.args.pkgs = import inputs.nixpkgs { + inherit system; + config.allowUnfree = true; + }; + # https://numtide.github.io/devshell/intro.html + devshells.default = { + # These commands will be shown in the motd that users read + # upon entering the shell + commands = + [ + { + package = self'.packages.cache; + category = "utils"; + help = "Downloads ISO files and adds them to the S3 bucket"; + } + { + package = self'.packages.generate; + category = "utils"; + help = "Generate dynamic HCL files"; + } + { + package = self'.packages.shellcheck; + category = "utils"; + help = "Run shellchecks"; + } + { + package = self'.packages.validate; + category = "utils"; + help = "Validate all the files"; + } + { + package = pkgs.vagrant; + category = "utils"; + help = "Vagrant to help with testing"; + } + ] + ++ (builtins.map (d: { + package = self'.packages."build${name d}"; + category = "builds"; + }) withProviders); + env = [ + { + name = "EFI_DIR"; + value = "${pkgs.OVMF.fd}/FV/"; + } + { + name = "PACKER_CONFIG_DIR"; + value = "./packer_config"; + } + { + name = "STORAGE_URL"; + value = "http://s3.thehellings.lan:9000"; + } + ]; + }; -# This is not special, this is just flakes - packages = let - base = { - runtimeInputs = with pkgs; [ - cdrtools - findutils - packer - qemu_full - vagrant - xorriso - ]; - }; - build = d: let - vp = x: if x.provider == "qemu" then "libvirt" - else if x.provider == "virtualbox-iso" then "virtualbox" - else if x.provider == "hyperv-iso" then "hyperv" - else "unknown"; - in pkgs.writeShellApplication (base // { - name = "build${name d}"; - text = '' - set -x - ${cmd d} -except=upload -var headless=false sources/ - vagrant box add --provider ${vp d} ./output/${vp d}/${d.distro}-${d.version}.box --name test_box --force - ''; - }); - cibuild = d: pkgs.writeShellApplication (base // { - name = "ci${name d}"; - text = '' - set -x - ${cmd d} -except=upload sources/ - ''; - }); - upload = d: pkgs.writeShellApplication (base // { - name = "upload${name d}"; - text = '' - set -x - ${cmd d} sources/ - ''; - }); - builds = lib.lists.foldr (d: acc: acc // { "build${name d}" = (build d); }) {} withProviders; - uploads = lib.lists.foldr (d: acc: acc // { "upload${name d}" = (upload d); }) {} withProviders; - cibuilds = lib.lists.foldr (d: acc: acc // { "ci${name d}" = (cibuild d); }) {} withProviders; - qemu_list = builtins.toJSON (builtins.map (d: { buildcmd = (name d); }) (builtins.filter (x: x.provider == "qemu") active)); - vbox_list = builtins.toJSON (builtins.map (d: { buildcmd = (name d); }) (builtins.filter (x: x.provider == "virtualbox-iso") active)); - hyperv_list = builtins.toJSON (builtins.map (d: { distro = distroFile d; }) (builtins.filter (x: x.provider == "hyperv-iso") active)); - in builds // uploads // cibuilds // { - continue = pkgs.writeText "continue.yml" - (builtins.replaceStrings ["QEMU_MATRIX" "VBOX_MATRIX" "HYPERV_MATRIX"] [qemu_list vbox_list hyperv_list] - (builtins.readFile ./.gitlab-ci-build.yml.in) - ); - cache = pkgs.callPackage (import ./nix/cache.nix) { inherit active distroFile; }; - validate = pkgs.callPackage (import ./nix/validate.nix) {}; - cache-restore = pkgs.writeShellApplication { - name = "cache-restore"; - runtimeInputs = with pkgs; [ - jq - minio-client - packer - ]; - text = builtins.readFile ./cache-restore.sh; - }; - generate = pkgs.writeShellApplication { - name = "generate"; - runtimeInputs = with pkgs; [ - bash - coreutils - curl - jq - pup - ]; - text = '' - shopt -s globstar - for vars in distros/**/*.pkrvars.hcl.sh; do - bash "./''${vars}" - done - set -x - echo "BUILD=$(date "+%Y.%m.%d.%H")" >> build.env - ''; - }; - shellcheck = pkgs.writeShellApplication { - name = "shellcheck"; - runtimeInputs = with pkgs; [ - shellcheck - ]; - text = '' - scripts=() - shopt -s globstar - for f in **/*.sh; do - scripts+=("$f") - done - shellcheck -e SC2239 "''${scripts[@]}" - ''; - }; - }; + # This is not special, this is just flakes + packages = + let + base = { + runtimeInputs = with pkgs; [ + cdrtools + findutils + packer + qemu_full + vagrant + xorriso + ]; + }; + build = + d: + let + vp = + x: + if x.provider == "qemu" then + "libvirt" + else if x.provider == "virtualbox-iso" then + "virtualbox" + else if x.provider == "hyperv-iso" then + "hyperv" + else + "unknown"; + in + pkgs.writeShellApplication ( + base + // { + name = "build${name d}"; + text = '' + set -x + ${cmd d} -except=upload -var headless=false sources/ + vagrant box add --provider ${vp d} ./output/${vp d}/${d.distro}-${d.version}.box --name test_box --force + ''; + } + ); + cibuild = + d: + pkgs.writeShellApplication ( + base + // { + name = "ci${name d}"; + text = '' + set -x + ${cmd d} -except=upload sources/ + ''; + } + ); + upload = + d: + pkgs.writeShellApplication ( + base + // { + name = "upload${name d}"; + text = '' + set -x + ${cmd d} sources/ + ''; + } + ); + builds = lib.lists.foldr (d: acc: acc // { "build${name d}" = (build d); }) { } withProviders; + uploads = lib.lists.foldr (d: acc: acc // { "upload${name d}" = (upload d); }) { } withProviders; + cibuilds = lib.lists.foldr (d: acc: acc // { "ci${name d}" = (cibuild d); }) { } withProviders; + qemu_list = builtins.toJSON ( + builtins.map (d: { buildcmd = (name d); }) (builtins.filter (x: x.provider == "qemu") active) + ); + vbox_list = builtins.toJSON ( + builtins.map (d: { buildcmd = (name d); }) ( + builtins.filter (x: x.provider == "virtualbox-iso") active + ) + ); + hyperv_list = builtins.toJSON ( + builtins.map (d: { distro = distroFile d; }) ( + builtins.filter (x: x.provider == "hyperv-iso") active + ) + ); + in + builds + // uploads + // cibuilds + // { + continue = pkgs.writeText "continue.yml" ( + builtins.replaceStrings + [ + "QEMU_MATRIX" + "VBOX_MATRIX" + "HYPERV_MATRIX" + ] + [ + qemu_list + vbox_list + hyperv_list + ] + (builtins.readFile ./.gitlab-ci-build.yml.in) + ); + cache = pkgs.callPackage (import ./nix/cache.nix) { inherit active distroFile; }; + validate = pkgs.callPackage (import ./nix/validate.nix) { }; + cache-restore = pkgs.writeShellApplication { + name = "cache-restore"; + runtimeInputs = with pkgs; [ + jq + minio-client + packer + ]; + text = builtins.readFile ./cache-restore.sh; + }; + generate = pkgs.writeShellApplication { + name = "generate"; + runtimeInputs = with pkgs; [ + bash + coreutils + curl + jq + pup + ]; + text = '' + shopt -s globstar + for vars in distros/**/*.pkrvars.hcl.sh; do + bash "./''${vars}" + done + set -x + echo "BUILD=$(date "+%Y.%m.%d.%H")" >> build.env + ''; + }; + shellcheck = pkgs.writeShellApplication { + name = "shellcheck"; + runtimeInputs = with pkgs; [ + shellcheck + ]; + text = '' + scripts=() + shopt -s globstar + for f in **/*.sh; do + scripts+=("$f") + done + shellcheck -e SC2239 "''${scripts[@]}" + ''; + }; + }; - # https://numtide.github.io/treefmt/ - treefmt.config = { - inherit (config.flake-root) projectRootFile; - package = pkgs.treefmt; - - programs = { - deadnix.enable = true; - }; - - settings.formatter = { - }; - }; - }; - }; + checks = { + pre-commit = inputs.hooks.lib.${inputs'.system}.run { + src = ./.; + hooks = { + check-added-large-files.enable = true; + check-case-conflicts.enable = true; + check-merge-conflicts.enable = true; + check-symlinks.enable = true; + deadnix.enable = true; + end-of-file-fixer.enable = true; + fix-byte-order-marker.enable = true; + mixed-line-endings.enable = true; + nixfmt-rfc-style.enable = true; + trim-trailing-whitespace.enable = true; + }; + }; + }; + }; + }; } diff --git a/nix/cache.nix b/nix/cache.nix index 4add151..5ddc4ed 100644 --- a/nix/cache.nix +++ b/nix/cache.nix @@ -1,44 +1,47 @@ { - writeShellApplication, - active, - distroFile, + writeShellApplication, + active, + distroFile, - curl, - minio-client, - packer, + curl, + minio-client, + packer, - ... + ... }: let - inherit (builtins) concatStringsSep map; -in writeShellApplication { - name = "cache-isos"; - runtimeInputs = [ - curl - minio-client - packer - ]; - text = '' - push="''${1:-yes}" - if [ "$push" == "yes" ]; then - mc alias set storage "$STORAGE_URL" root "$MINIO_SECRET" - fi - mkdir -p cache - '' + (concatStringsSep "\n" ( - map (d: '' - url=$(echo var.iso.url | packer console -var-file="${distroFile d}" -config-type=hcl2 sources/) - sha=$(echo var.iso.checksum | packer console -var-file="${distroFile d}" -config-type=hcl2 sources/) - distro=$(echo var.distro | packer console -var-file="${distroFile d}" -config-type=hcl2 sources/) - # shellcheck disable=SC2143 - if [ -z "$(mc ls "storage/isos/cache/$distro" | grep "$sha")" ]; then - curl -L --retry 3 --retry-all-errors -o "cache/$sha.iso" "$url" - if [ "$push" == "yes" ]; then - mc put "cache/$sha.iso" "storage/isos/cache/$distro/$sha.iso" - fi - else - echo "Skipping ${d.distro} - cache/$sha.iso" - fi - '') active - )); + inherit (builtins) concatStringsSep map; +in +writeShellApplication { + name = "cache-isos"; + runtimeInputs = [ + curl + minio-client + packer + ]; + text = + '' + push="''${1:-yes}" + if [ "$push" == "yes" ]; then + mc alias set storage "$STORAGE_URL" root "$MINIO_SECRET" + fi + mkdir -p cache + '' + + (concatStringsSep "\n" ( + map (d: '' + url=$(echo var.iso.url | packer console -var-file="${distroFile d}" -config-type=hcl2 sources/) + sha=$(echo var.iso.checksum | packer console -var-file="${distroFile d}" -config-type=hcl2 sources/) + distro=$(echo var.distro | packer console -var-file="${distroFile d}" -config-type=hcl2 sources/) + # shellcheck disable=SC2143 + if [ -z "$(mc ls "storage/isos/cache/$distro" | grep "$sha")" ]; then + curl -L --retry 3 --retry-all-errors -o "cache/$sha.iso" "$url" + if [ "$push" == "yes" ]; then + mc put "cache/$sha.iso" "storage/isos/cache/$distro/$sha.iso" + fi + else + echo "Skipping ${d.distro} - cache/$sha.iso" + fi + '') active + )); } diff --git a/nix/validate.nix b/nix/validate.nix index e433806..542313d 100644 --- a/nix/validate.nix +++ b/nix/validate.nix @@ -1,23 +1,23 @@ { - writeShellApplication, - findutils, - packer, - ... + writeShellApplication, + findutils, + packer, + ... }: writeShellApplication { - name = "validate"; - runtimeInputs = [ - findutils - packer - ]; - text = '' - shopt -s globstar - if [ -e "''${PACKER_CONFIG_DIR}" ]; then - find "''${PACKER_CONFIG_DIR}" -name '*_linux_amd64' -exec chmod +x '{}' ";" - fi - packer init sources - for vars in distros/**/*.pkrvars.hcl; do - packer validate -except=upload "-var-file=''${vars}" sources/ - done - ''; + name = "validate"; + runtimeInputs = [ + findutils + packer + ]; + text = '' + shopt -s globstar + if [ -e "''${PACKER_CONFIG_DIR}" ]; then + find "''${PACKER_CONFIG_DIR}" -name '*_linux_amd64' -exec chmod +x '{}' ";" + fi + packer init sources + for vars in distros/**/*.pkrvars.hcl; do + packer validate -except=upload "-var-file=''${vars}" sources/ + done + ''; }