mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-09 19:13:26 +03:00
nixos/swapspace: add installWrapper option
Signed-off-by: phanirithvij <phanirithvij2000@gmail.com> Co-authored-by: Luflosi <luflosi@luflosi.de>
This commit is contained in:
parent
d29066d0f3
commit
64b06b0a19
2 changed files with 31 additions and 5 deletions
|
@ -9,11 +9,27 @@ let
|
|||
cfg = config.services.swapspace;
|
||||
inherit (lib)
|
||||
types
|
||||
mkIf
|
||||
mkOption
|
||||
mkPackageOption
|
||||
mkEnableOption
|
||||
;
|
||||
configFile = pkgs.writeText "swapspace.conf" (lib.generators.toKeyValue { } cfg.settings);
|
||||
inherit (pkgs)
|
||||
makeWrapper
|
||||
runCommand
|
||||
writeText
|
||||
;
|
||||
configFile = writeText "swapspace.conf" (lib.generators.toKeyValue { } cfg.settings);
|
||||
userWrapper =
|
||||
runCommand "swapspace"
|
||||
{
|
||||
buildInputs = [ makeWrapper ];
|
||||
}
|
||||
''
|
||||
mkdir -p "$out/bin"
|
||||
makeWrapper '${lib.getExe cfg.package}' "$out/bin/swapspace" \
|
||||
--add-flags "-c '${configFile}'"
|
||||
'';
|
||||
in
|
||||
{
|
||||
options.services.swapspace = {
|
||||
|
@ -28,6 +44,13 @@ in
|
|||
];
|
||||
description = "Any extra arguments to pass to swapspace";
|
||||
};
|
||||
installWrapper = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
This will add swapspace wrapped with the generated config, to environment.systemPackages
|
||||
'';
|
||||
};
|
||||
settings = mkOption {
|
||||
type = types.submodule {
|
||||
options = {
|
||||
|
@ -92,8 +115,8 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [ (if cfg.installWrapper then userWrapper else cfg.package) ];
|
||||
systemd.packages = [ cfg.package ];
|
||||
systemd.services.swapspace = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import ./make-test-python.nix (
|
||||
{ pkgs, lib, ... }:
|
||||
{ lib, ... }:
|
||||
|
||||
{
|
||||
name = "swapspace";
|
||||
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
meta = with lib.maintainers; {
|
||||
maintainers = [
|
||||
Luflosi
|
||||
phanirithvij
|
||||
|
@ -38,6 +38,9 @@ import ./make-test-python.nix (
|
|||
machine.wait_for_unit("swapspace.service")
|
||||
machine.wait_for_unit("root-swapfile.swap")
|
||||
|
||||
# ensure swapspace wrapper command runs
|
||||
machine.succeed("swapspace --inspect")
|
||||
|
||||
swamp = False
|
||||
with subtest("swapspace works"):
|
||||
machine.execute("mkdir /root/memfs")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue