module Git (config, root) where import Data.Text (Text, pack, unpack) import System.Process (readProcess) config :: Text -> IO Text config :: Text -> IO Text config Text key = String -> Text pack (String -> Text) -> (String -> String) -> String -> Text forall b c a. (b -> c) -> (a -> b) -> a -> c . [String] -> String forall a. HasCallStack => [a] -> a head ([String] -> String) -> (String -> [String]) -> String -> String forall b c a. (b -> c) -> (a -> b) -> a -> c . String -> [String] lines (String -> Text) -> IO String -> IO Text forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> String -> [String] -> String -> IO String readProcess String "git" [String "config", Text -> String unpack Text key] String "" root :: IO Text root :: IO Text root = String -> Text pack (String -> Text) -> (String -> String) -> String -> Text forall b c a. (b -> c) -> (a -> b) -> a -> c . [String] -> String forall a. HasCallStack => [a] -> a head ([String] -> String) -> (String -> [String]) -> String -> String forall b c a. (b -> c) -> (a -> b) -> a -> c . String -> [String] lines (String -> Text) -> IO String -> IO Text forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> String -> [String] -> String -> IO String readProcess String "git" [String "rev-parse", String "--show-toplevel"] String ""