From 02d5a0ca96f405a55a5a47236ba5951fbdfccbde Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Tue, 21 Jun 2016 21:13:56 +0200 Subject: bugfix --- ymir/mlmmj-expose.nix | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/ymir/mlmmj-expose.nix b/ymir/mlmmj-expose.nix index aca8aeb1..b3eab046 100644 --- a/ymir/mlmmj-expose.nix +++ b/ymir/mlmmj-expose.nix @@ -37,14 +37,17 @@ let "mlmmj-exposed" -> do args <- getArgs case args of - [listDir, extension] -> do + [listDir, (map toLower -> extension)] -> do setCurrentDirectory listDir identities <- getIdentities subscribers <- getSubscribers - let hashes = [(ident, sub, take len $ hash' (ident, sub)) | ident <- identities, sub <- subscribers] - unless (extension `elem` map (\(_, _, s) -> s) hashes) $ die "Unknown extension" - getContents >>= writeFile "queue/exposed" - callProcess "${pkgs.mlmmj}/bin/mlmmj-send" ["-L", listDir, "-l", "6", "-m", "queue/exposed", "-T", recipient] + let hashes = filter ((==) extension . snd) [((ident, sub), take len $ hash' (ident, sub)) | ident <- identities, sub <- subscribers] + case hashes of + [(_, recipient)] -> do + getContents >>= writeFile "queue/exposed" + callProcess "${pkgs.mlmmj}/bin/mlmmj-send" ["-L", listDir, "-l", "6", "-m", "queue/exposed", "-T", recipient] + [] -> die "Unknown extension" + _ -> die "Ambiguous extension" _ -> hPutStrLn stderr ("Called without expected arguments ( )") >> exitWith (ExitFailure 2) "mlmmj-expose" -> do args <- getArgs @@ -79,7 +82,7 @@ let readDir dir = concat <$> (mapM (fmap lines . readFile) . map (dir ) . filter (not . (`elem` [".", ".."]))=<< (getDirectoryContents dir)) hash' :: Show a => a -> String - hash' = show . (hash :: BS.ByteString -> Digest SHA256) . CBS.pack . map toLower . show + hash' = map toLower . show . (hash :: BS.ByteString -> Digest SHA256) . CBS.pack . map toLower . show len :: Int len = 16 -- cgit v1.2.3