[Nix-dev] Installing in $HOME and datadir

Pjotr Prins pjotr.public12 at thebird.nl
Mon Mar 24 08:39:15 CET 2014


Thanks!

On Sun, Mar 23, 2014 at 06:34:29PM +0100, Peter Simons wrote:
> Hi Pjotr,
> 
> I haven't tested it much, but I believe the attached patch to
> nixpkgs/nixos/modules/services/databases/4store.nix should do
> what you need.
> 
> I hope it helps,
> Peter
> 

> diff --git a/nixos/modules/services/databases/4store.nix b/nixos/modules/services/databases/4store.nix
> index 412d14b..e6b21bf 100644
> --- a/nixos/modules/services/databases/4store.nix
> +++ b/nixos/modules/services/databases/4store.nix
> @@ -1,7 +1,6 @@
>  { config, pkgs, ... }:
>  let
>    cfg = config.services.fourStore;
> -  stateDir = "/var/lib/4store";
>    fourStoreUser = "fourstore";
>    run = "${pkgs.su}/bin/su -s ${pkgs.stdenv.shell} ${fourStoreUser}";
>  in
> @@ -21,7 +20,7 @@ with pkgs.lib;
>  
>        database = mkOption {
>          default = "";
> -        description = "RDF database name. If it doesn't exist, it will be created. Databases are stored in ${stateDir}.";
> +        description = "RDF database name. If it doesn't exist, it will be created. Databases are stored in ${cfg.stateDir}.";
>        };
>  
>        options = mkOption {
> @@ -29,6 +28,11 @@ with pkgs.lib;
>          description = "Extra CLI options to pass to 4Store.";
>        };
>  
> +      stateDir = mkOption {
> +        default = "/var/lib/4store";
> +        description = "Path of the 4Store RDF database server state directory.";
> +      };
> +
>      };
>  
>    };
> @@ -47,7 +51,7 @@ with pkgs.lib;
>        { name = fourStoreUser;
>          uid = config.ids.uids.fourStore;
>          description = "4Store database user";
> -        home = stateDir;
> +        home = cfg.stateDir;
>        };
>  
>      services.avahi.enable = true;
> @@ -57,9 +61,9 @@ with pkgs.lib;
>        startOn = "filesystem";
>  
>        preStart = ''
> -        mkdir -p ${stateDir}/
> -        chown ${fourStoreUser} ${stateDir}
> -        if ! test -e "${stateDir}/${cfg.database}"; then
> +        mkdir -p ${cfg.stateDir}/
> +        chown ${fourStoreUser} ${cfg.stateDir}
> +        if ! test -e "${cfg.stateDir}/${cfg.database}"; then
>            ${run} -c '${pkgs.rdf4store}/bin/4s-backend-setup ${cfg.database}'
>          fi
>        '';

> _______________________________________________
> nix-dev mailing list
> nix-dev at lists.science.uu.nl
> http://lists.science.uu.nl/mailman/listinfo/nix-dev



More information about the nix-dev mailing list