{ description = "Standard images that Greg wants to build"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; flake-parts.url = "github:hercules-ci/flake-parts"; greg.url = "github:greg-hellings/nixos-config"; }; outputs = inputs@{ self, nixpkgs, flake-utils, greg, flake-parts }: flake-parts.lib.mkFlake { inherit inputs; } { flake = { }; systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; perSystem = sys@{ config, pkgs, system, ... }: { _module.args.pkgs = import nixpkgs { inherit system; config.allowUnfree = true; }; packages = { vm-test = let basicPython = (pkgs.python3.withPackages (p: with p; [ pyyaml ])); in pkgs.dockerTools.buildLayeredImage { name = "vm-test"; tag = "latest"; contents = with pkgs; [ bash coreutils curl gnugrep findutils jq packer shellcheck (xonsh.overridePythonAttrs (old: rec { python3 = basicPython; propagatedBuildInputs = old.propagatedBuildInputs ++ [ basicPython.pkgs.pyyaml ];})) ]; extraCommands = [ "mkdir -p /tmp" "chmod -R 777 /tmp" ]; }; }; }; }; }