diff --git a/README.md b/README.md index 5f6967b..d1fab8c 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@
+
+
# Description diff --git a/src/dirname.hs b/src/dirname.hs new file mode 100644 index 0000000..b352fc8 --- /dev/null +++ b/src/dirname.hs @@ -0,0 +1,19 @@ +{-# LANGUAGE NoImplicitPrelude #-} +{-# LANGUAGE OverloadedStrings #-} + +import Prelude (IO, String, (.), (==), mapM_, putStrLn) +import Control.Monad ((>>=)) +import System.Environment (getArgs) +import Data.Text (Text, breakOnEnd, dropWhileEnd, pack, unpack) + +dropFilename :: (Text, Text) -> Text +dropFilename ("", "") = "." +dropFilename ("", file) = file +dropFilename (dir, _file) = dropWhileEnd (== '/') dir + +dirname :: String -> String +dirname = unpack . dropFilename . breakOnEnd "/" . pack + +main :: IO () +main = getArgs >>= mapM_ (putStrLn . dirname) +