From 64666ba42e00cb124647c05bceb8cc4e2d6c7c0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kier=C3=A1n=20Meinhardt?= Date: Thu, 16 Apr 2020 10:35:20 +0200 Subject: [PATCH] fix(flix): use global cache location --- configs/flix.nix | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/configs/flix.nix b/configs/flix.nix index 1014c83..e241547 100644 --- a/configs/flix.nix +++ b/configs/flix.nix @@ -1,40 +1,42 @@ { config, pkgs, ... }: -let flixLocation = "/media/flix"; +let + flixLocation = "/media/flix"; + cacheLocation = "/var/cache/flix"; in { + imports = [ ]; + fileSystems.${flixLocation} = { device = "prism.r:/export"; fsType = "nfs"; }; - systemd.user.services.flix-index = { - description = "Flix indexing service"; - after = [ "network.target" ]; - wantedBy = [ "default.target" ]; - script = '' - cachedir="${config.users.users.me.home}/.cache" - flix_cache="$cachedir/flix_index" + krebs.permown.${cacheLocation} = { + owner = config.users.users.me.name; + group = "users"; + umask = "0000"; + }; - [ -d "$cachedir" ] || mkdir -p "$cachedir" + systemd.services.flix-index = { + description = "Flix indexing service"; + wants = [ "network-online.target" ]; + script = '' + flix_cache="${cacheLocation}/flix_index" find ${flixLocation} -type f > "$flix_cache" ''; startAt = "hourly"; - serviceConfig = { - Type = "oneshot"; - User = config.users.users.me.name; - }; + serviceConfig.Type = "oneshot"; }; environment.systemPackages = [ (pkgs.writeDashBin "flixmenu" '' set -efu - cachedir="${config.users.users.me.home}/.cache" - flix_cache="$cachedir/flix_index" + flix_cache="${cacheLocation}/flix_index" [ -f "$flix_cache" ] || exit 1 ${pkgs.dmenu}/bin/dmenu -i -p flix -l 5 "$@" < "$flix_cache" \ - | ${pkgs.findutils}/bin/xargs -I '{}' ${pkgs.xdg_utils}/bin/xdg-open '{}' + | ${pkgs.findutils}/bin/xargs -I '{}' ${pkgs.utillinux}/bin/setsid ${pkgs.xdg_utils}/bin/xdg-open '{}' '') ];