Browse Source

002/104: dirname

master
Maxim Likhachev 5 years ago
parent
commit
de27e0d7c8
  1. 2
      README.md
  2. 19
      src/dirname.hs

2
README.md

@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
<img src="https://www.maizure.org/projects/decoded-gnu-coreutils/GNU.png" />
<br />
<img src="https://www.haskell.org/img/haskell-logo.svg" />
<br />
<br />
</div>
# Description

19
src/dirname.hs

@ -0,0 +1,19 @@ @@ -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)
Loading…
Cancel
Save