Apply nixfmt to the whole tree
This commit is contained in:
@@ -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;
|
||||
}
|
||||
]
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
[ {
|
||||
version = "rolling";
|
||||
arch = "amd64";
|
||||
eol = false;
|
||||
} ]
|
||||
[
|
||||
{
|
||||
version = "rolling";
|
||||
arch = "amd64";
|
||||
eol = false;
|
||||
}
|
||||
]
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
[ {
|
||||
version = "7";
|
||||
arch = "amd64";
|
||||
eol = true;
|
||||
} ]
|
||||
[
|
||||
{
|
||||
version = "7";
|
||||
arch = "amd64";
|
||||
eol = true;
|
||||
}
|
||||
]
|
||||
|
||||
+25
-20
@@ -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"
|
||||
];
|
||||
}
|
||||
]
|
||||
|
||||
+11
-11
@@ -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;
|
||||
}
|
||||
|
||||
+32
-25
@@ -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;
|
||||
}
|
||||
]
|
||||
|
||||
@@ -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";
|
||||
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;
|
||||
};
|
||||
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";
|
||||
};
|
||||
};
|
||||
nix = {
|
||||
package = pkgs.nixFlakes;
|
||||
settings = {
|
||||
experimental-features = "nix-command flakes";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
ga-qemu.nix
|
||||
@@ -0,0 +1,4 @@
|
||||
{ ... }:
|
||||
{
|
||||
services.qemuGuest.enable = true;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{...}:
|
||||
{ ... }:
|
||||
{
|
||||
virtualisation.hypervGuest.enable = true;
|
||||
virtualisation.hypervGuest.enable = true;
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{...}:
|
||||
{ ... }:
|
||||
{
|
||||
virtualisation.virtualbox.guest = {
|
||||
enable = true;
|
||||
x11 = false;
|
||||
};
|
||||
virtualisation.virtualbox.guest = {
|
||||
enable = true;
|
||||
x11 = false;
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{...}:
|
||||
{ ... }:
|
||||
{
|
||||
services.qemuGuest.enable = true;
|
||||
services.qemuGuest.enable = true;
|
||||
}
|
||||
@@ -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";
|
||||
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;
|
||||
};
|
||||
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";
|
||||
};
|
||||
};
|
||||
nix = {
|
||||
package = pkgs.nixFlakes;
|
||||
settings = {
|
||||
experimental-features = "nix-command flakes";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
ga-qemu.nix
|
||||
@@ -0,0 +1,4 @@
|
||||
{ ... }:
|
||||
{
|
||||
services.qemuGuest.enable = true;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{...}:
|
||||
{ ... }:
|
||||
{
|
||||
virtualisation.hypervGuest.enable = true;
|
||||
virtualisation.hypervGuest.enable = true;
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{...}:
|
||||
{ ... }:
|
||||
{
|
||||
virtualisation.virtualbox.guest = {
|
||||
enable = true;
|
||||
x11 = false;
|
||||
};
|
||||
virtualisation.virtualbox.guest = {
|
||||
enable = true;
|
||||
x11 = false;
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{...}:
|
||||
{ ... }:
|
||||
{
|
||||
services.qemuGuest.enable = true;
|
||||
services.qemuGuest.enable = true;
|
||||
}
|
||||
@@ -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";
|
||||
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;
|
||||
};
|
||||
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";
|
||||
};
|
||||
};
|
||||
nix = {
|
||||
package = pkgs.nixFlakes;
|
||||
settings = {
|
||||
experimental-features = "nix-command flakes";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
ga-qemu.nix
|
||||
@@ -0,0 +1,4 @@
|
||||
{ ... }:
|
||||
{
|
||||
services.qemuGuest.enable = true;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{...}:
|
||||
{ ... }:
|
||||
{
|
||||
virtualisation.hypervGuest.enable = true;
|
||||
virtualisation.hypervGuest.enable = true;
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{...}:
|
||||
{ ... }:
|
||||
{
|
||||
virtualisation.virtualbox.guest = {
|
||||
enable = true;
|
||||
};
|
||||
virtualisation.virtualbox.guest = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{...}:
|
||||
{ ... }:
|
||||
{
|
||||
services.qemuGuest.enable = true;
|
||||
services.qemuGuest.enable = true;
|
||||
}
|
||||
+17
-13
@@ -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;
|
||||
}
|
||||
]
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
]
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
]
|
||||
|
||||
+32
-25
@@ -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;
|
||||
}
|
||||
]
|
||||
|
||||
Generated
+1
-52
@@ -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",
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
+40
-37
@@ -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
|
||||
));
|
||||
}
|
||||
|
||||
+19
-19
@@ -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
|
||||
'';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user