]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/environment.nix
Add assets website for immae
[perso/Immae/Config/Nix.git] / modules / private / environment.nix
index b8c4dd2325a89497decbdc876f0b73f1dc05601e..193e95cf81d8cd64b9e0731af9755b617b033e74 100644 (file)
@@ -441,9 +441,24 @@ in
       type = submodule {
         options = {
           password = mkOption { type = str; description = "Password for encrypting files"; };
-          remote = mkOption { type = str; description = "Remote url access"; };
-          accessKeyId = mkOption { type = str; description = "Remote access-key"; };
-          secretAccessKey = mkOption { type = str; description = "Remote access secret"; };
+          remotes = mkOption {
+            type = attrsOf (submodule {
+              options = {
+                remote = mkOption {
+                  type = unspecified;
+                  example = literalExample ''
+                    bucket: "s3://some_host/${bucket}";
+                    '';
+                  description = ''
+                    Function.
+                    Takes a bucket name as argument and returns a url
+                    '';
+                };
+                accessKeyId = mkOption { type = str; description = "Remote access-key"; };
+                secretAccessKey = mkOption { type = str; description = "Remote access secret"; };
+              };
+            });
+          };
         };
       };
     };
@@ -841,6 +856,16 @@ in
       type = submodule {
         options = {
           contact = mkOption { type = str; description = "Contact e-mail address"; };
+          assets = mkOption {
+            default = {};
+            type = attrsOf (submodule {
+              options = {
+                url = mkOption { type = str; description = "URL to fetch"; };
+                sha256 = mkOption { type = str; description = "Hash of the url"; };
+              };
+            });
+            description = "Assets to provide on assets.immae.eu";
+          };
           davical = mkOption {
             description = "Davical configuration";
             type = submodule {