nixos/postgresql-backup: allow setting compression level
This commit is contained in:
committed by
Robert Helgesson
parent
3027325501
commit
af66b47b3a
@@ -17,8 +17,8 @@ let
|
|||||||
|
|
||||||
compressCmd = getAttr cfg.compression {
|
compressCmd = getAttr cfg.compression {
|
||||||
"none" = "cat";
|
"none" = "cat";
|
||||||
"gzip" = "${pkgs.gzip}/bin/gzip -c";
|
"gzip" = "${pkgs.gzip}/bin/gzip -c -${toString cfg.compressionLevel}";
|
||||||
"zstd" = "${pkgs.zstd}/bin/zstd -c";
|
"zstd" = "${pkgs.zstd}/bin/zstd -c -${toString cfg.compressionLevel}";
|
||||||
};
|
};
|
||||||
|
|
||||||
mkSqlPath = prefix: suffix: "${cfg.location}/${db}${prefix}.sql${suffix}";
|
mkSqlPath = prefix: suffix: "${cfg.location}/${db}${prefix}.sql${suffix}";
|
||||||
@@ -130,16 +130,33 @@ in {
|
|||||||
The type of compression to use on the generated database dump.
|
The type of compression to use on the generated database dump.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
compressionLevel = mkOption {
|
||||||
|
type = types.ints.between 1 19;
|
||||||
|
default = 6;
|
||||||
|
description = ''
|
||||||
|
The compression level used when compression is enabled.
|
||||||
|
gzip accepts levels 1 to 9. zstd accepts levels 1 to 19.
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkMerge [
|
config = mkMerge [
|
||||||
{
|
{
|
||||||
assertions = [{
|
assertions = [
|
||||||
|
{
|
||||||
assertion = cfg.backupAll -> cfg.databases == [];
|
assertion = cfg.backupAll -> cfg.databases == [];
|
||||||
message = "config.services.postgresqlBackup.backupAll cannot be used together with config.services.postgresqlBackup.databases";
|
message = "config.services.postgresqlBackup.backupAll cannot be used together with config.services.postgresqlBackup.databases";
|
||||||
}];
|
}
|
||||||
|
{
|
||||||
|
assertion = cfg.compression == "none" ||
|
||||||
|
(cfg.compression == "gzip" && cfg.compressionLevel >= 1 && cfg.compressionLevel <= 9) ||
|
||||||
|
(cfg.compression == "zstd" && cfg.compressionLevel >= 1 && cfg.compressionLevel <= 19);
|
||||||
|
message = "config.services.postgresqlBackup.compressionLevel must be set between 1 and 9 for gzip and 1 and 19 for zstd";
|
||||||
|
}
|
||||||
|
];
|
||||||
}
|
}
|
||||||
(mkIf cfg.enable {
|
(mkIf cfg.enable {
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
|
|||||||
Reference in New Issue
Block a user