summaryrefslogtreecommitdiffstats
path: root/cli.nix
blob: e29b340f412ef2f6c129b700df3670109d6e1fa7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{ pkgs ? import <nixpkgs> {}
, mode ? "mount"
, flake ? null
, flakeAttr ? null
, diskoFile ? null
, ... }@args:
let
  disko = import ./. { };

  diskFormat = if flake != null then
    (pkgs.lib.attrByPath [ "diskoConfigurations" flakeAttr ] (builtins.abort "${flakeAttr} does not exist") (builtins.getFlake flake)) args
  else
    import diskoFile args;

  diskoEval = if (mode == "create") then
    disko.createScript diskFormat pkgs
  else if (mode == "mount") then
    disko.mountScript diskFormat pkgs
  else
    builtins.abort "invalid mode"
  ;
in diskoEval