{
  description = "folliehiyuki's dotfiles using Ansible";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    flake-utils.url = "github:numtide/flake-utils";

    disko = {
      url = "github:nix-community/disko";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = { flake-utils, nixpkgs, ... }:
    let
      inherit (nixpkgs) lib;
      diskConfigs = lib.filterAttrs
        (name: type: type == "regular" && lib.hasSuffix ".nix" name)
        (builtins.readDir ./disks);
    in
    flake-utils.lib.eachSystem [ "x86_64-linux" "aarch64-linux" ]
      (system:
        let
          pkgs = nixpkgs.legacyPackages."${system}";
        in
        {
          devShells.default = with pkgs; mkShellNoCC {
            packages = [
              ansible
            ];
          };
        }) // {
      diskoConfigurations = lib.mapAttrs'
        (name: _:
          lib.nameValuePair
            (lib.removeSuffix ".nix" name)
            (import ./disks/${name}))
        diskConfigs;
    };
}
