forked from rarias/jungle
Create paste directories in /ceph/p
Ensure that all hut users have a paste directory in /ceph/p owned by themselves. We need to wait for the ceph mount point to create them, so we use a systemd service that waits for the remote-fs.target. Reviewed-by: Aleix Boné <abonerib@bsc.es>
This commit is contained in:
parent
a34e3752a2
commit
36592c44eb
21
m/hut/p.nix
21
m/hut/p.nix
@ -1,4 +1,4 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, lib, config, ... }:
|
||||||
let
|
let
|
||||||
p = pkgs.writeShellScriptBin "p" ''
|
p = pkgs.writeShellScriptBin "p" ''
|
||||||
set -e
|
set -e
|
||||||
@ -21,4 +21,23 @@ let
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [ p ];
|
environment.systemPackages = with pkgs; [ p ];
|
||||||
|
|
||||||
|
# Make sure we have a directory per user. We cannot use the nice
|
||||||
|
# systemd-tmpfiles-setup.service service because this is a remote FS, and it
|
||||||
|
# may not be mounted when it runs.
|
||||||
|
systemd.services.create-paste-dirs = let
|
||||||
|
# Take only normal users in hut
|
||||||
|
users = lib.filterAttrs (_: v: v.isNormalUser) config.users.users;
|
||||||
|
commands = lib.concatLists (lib.mapAttrsToList
|
||||||
|
(_: user: [
|
||||||
|
"install -d -o ${user.name} -g ${user.group} -m 0755 /ceph/p/${user.name}"
|
||||||
|
]) users);
|
||||||
|
script = pkgs.writeShellScript "create-paste-dirs.sh" (lib.concatLines commands);
|
||||||
|
in {
|
||||||
|
enable = true;
|
||||||
|
wants = [ "remote-fs.target" ];
|
||||||
|
after = [ "remote-fs.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig.ExecStart = script;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user