|
14 | 14 | imports = [ |
15 | 15 | ./digital-ocean-config.nix |
16 | 16 | ./disk-size-option.nix |
| 17 | + ../image/file-options.nix |
17 | 18 | (lib.mkRenamedOptionModuleWith { |
18 | 19 | sinceRelease = 2411; |
19 | 20 | from = [ |
|
57 | 58 | }; |
58 | 59 |
|
59 | 60 | #### implementation |
60 | | - config = { |
61 | | - system.build.digitalOceanImage = import ../../lib/make-disk-image.nix { |
62 | | - name = "digital-ocean-image"; |
| 61 | + config = |
| 62 | + let |
63 | 63 | format = "qcow2"; |
64 | | - postVM = |
65 | | - let |
66 | | - compress = |
67 | | - { |
68 | | - "gzip" = "${pkgs.gzip}/bin/gzip"; |
69 | | - "bzip2" = "${pkgs.bzip2}/bin/bzip2"; |
70 | | - } |
71 | | - .${cfg.compressionMethod}; |
72 | | - in |
73 | | - '' |
74 | | - ${compress} $diskImage |
75 | | - ''; |
76 | | - configFile = |
77 | | - if cfg.configFile == null then |
78 | | - config.virtualisation.digitalOcean.defaultConfigFile |
79 | | - else |
80 | | - cfg.configFile; |
81 | | - inherit (config.virtualisation) diskSize; |
82 | | - inherit config lib pkgs; |
83 | | - }; |
| 64 | + in |
| 65 | + { |
| 66 | + image.extension = lib.concatStringsSep "." [ |
| 67 | + format |
| 68 | + ( |
| 69 | + { |
| 70 | + "gzip" = "gz"; |
| 71 | + "bzip2" = "bz2"; |
| 72 | + } |
| 73 | + .${cfg.compressionMethod} |
| 74 | + ) |
| 75 | + ]; |
| 76 | + system.nixos.tags = [ "digital-ocean" ]; |
| 77 | + system.build.image = config.system.build.digitalOceanImage; |
| 78 | + system.build.digitalOceanImage = import ../../lib/make-disk-image.nix { |
| 79 | + name = "digital-ocean-image"; |
| 80 | + inherit (config.image) baseName; |
| 81 | + inherit (config.virtualisation) diskSize; |
| 82 | + inherit |
| 83 | + config |
| 84 | + lib |
| 85 | + pkgs |
| 86 | + format |
| 87 | + ; |
| 88 | + postVM = |
| 89 | + let |
| 90 | + compress = |
| 91 | + { |
| 92 | + "gzip" = "${pkgs.gzip}/bin/gzip"; |
| 93 | + "bzip2" = "${pkgs.bzip2}/bin/bzip2"; |
| 94 | + } |
| 95 | + .${cfg.compressionMethod}; |
| 96 | + in |
| 97 | + '' |
| 98 | + ${compress} $diskImage |
| 99 | + ''; |
| 100 | + configFile = |
| 101 | + if cfg.configFile == null then |
| 102 | + config.virtualisation.digitalOcean.defaultConfigFile |
| 103 | + else |
| 104 | + cfg.configFile; |
| 105 | + }; |
84 | 106 |
|
85 | | - }; |
| 107 | + }; |
86 | 108 |
|
87 | 109 | meta.maintainers = with maintainers; [ |
88 | 110 | arianvp |
|
0 commit comments