{-# LANGUAGE NoImplicitPrelude #-}
module StrUtils
( stripNewline, ensureNewline, unprefix
) where
import Data.List (isPrefixOf, isSuffixOf)
import Prelude.Compat
stripNewline :: String -> String
stripNewline x
| "\n" `isSuffixOf` x = init x
| otherwise = x
ensureNewline :: String -> String
ensureNewline "" = ""
ensureNewline str = str ++ suffix
where
suffix
| "\n" `isSuffixOf` str = ""
| otherwise = "\n"
unprefix :: Eq a => [a] -> [a] -> Maybe [a]
unprefix prefix str
| prefix `isPrefixOf` str = Just (drop (length prefix) str)
| otherwise = Nothing