summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--custom/notify-user.nix13
1 files changed, 6 insertions, 7 deletions
diff --git a/custom/notify-user.nix b/custom/notify-user.nix
index 68e267d6..e3437ea7 100644
--- a/custom/notify-user.nix
+++ b/custom/notify-user.nix
@@ -8,23 +8,22 @@ stdenv.mkDerivation {
8 name = ''notify-${user}''; 8 name = ''notify-${user}'';
9 src = writeTextFile { name = ''notify-${user}.hs''; text = '' 9 src = writeTextFile { name = ''notify-${user}.hs''; text = ''
10 import System.FilePath.Glob (glob) 10 import System.FilePath.Glob (glob)
11 import System.Directory (setCurrentDirectory)
12 import System.Environment (setEnv, getArgs) 11 import System.Environment (setEnv, getArgs)
13 import System.Process (callProcess) 12 import System.Process (callProcess)
14 13
15 import Data.List (isPrefixOf) 14 import Data.List (isPrefixOf)
16 15
17 main = do 16 main = do
18 setCurrentDirectory "/" 17 envFiles <- glob "/home/${user}/.dbus/session-bus/*"
19 (envFile:_) <- glob "/home/${user}/.dbus/session-bus/*" 18 forM envFiles $ \envFile -> do
20 sessionAddr <- snd . break (== '=') . head . filter ("DBUS_SESSION_BUS_ADDRESS=" `isPrefixOf`) . lines <$> readFile envFile 19 sessionAddr <- snd . break (== '=') . head . filter ("DBUS_SESSION_BUS_ADDRESS=" `isPrefixOf`) . lines <$> readFile envFile
21 setEnv "DBUS_SESSION_BUS_ADDRESS" sessionAddr 20 setEnv "DBUS_SESSION_BUS_ADDRESS" sessionAddr
22 callProcess "${libnotify}/bin/notify-send" =<< getArgs 21 callProcess "${libnotify}/bin/notify-send" =<< getArgs
23 22
24 ''; }; 23 ''; };
25 phases = [ "buildPhase" "installPhase" ]; 24 phases = [ "buildPhase" "installPhase" ];
26 buildPhase = '' 25 buildPhase = ''
27 ${ghcWithPackages (p: with p; [ Glob directory process ])}/bin/ghc -odir . -hidir . $src -o notify-${user} 26 ${ghcWithPackages (p: with p; [ Glob process ])}/bin/ghc -odir . -hidir . $src -o notify-${user}
28 ''; 27 '';
29 installPhase = '' 28 installPhase = ''
30 mkdir -p $out/bin 29 mkdir -p $out/bin