{- This file is part of Vervis. - - Written in 2016 by fr33domlover . - - ♡ Copying is an act of love. Please copy, reuse and share. - - The author(s) have dedicated all copyright and related and neighboring - rights to this software to the public domain worldwide. This software is - distributed without any warranty. - - You should have received a copy of the CC0 Public Domain Dedication along - with this software. If not, see - . -} -- | File path utilities for 'Data.Text.Text'. module Text.FilePath.Local ( -- * Types FileName , FileBaseName , FileExtension -- * Functions , breakExt ) where import Prelude import Control.Arrow ((***)) import Data.Text (Text) import System.FilePath import qualified Data.Text as T type FileName = Text type FileBaseName = Text type FileExtension = Text breakExt :: FileName -> (FileBaseName, FileExtension) breakExt name = case id *** T.uncons $ T.break isExtSeparator name of (_, Nothing) -> (name, T.empty) (p, Just (_, r)) -> (p, r)