#!/usr/bin/env -S runhaskell --ghc-arg="-Wall" --ghc-arg="-i lib" import Data.Char (isUpper, isLower) import System.Environment (getArgs) import System.Script (syntax) import Text.Filter (xargs) linearize :: String -> String linearize "" = "" linearize ('¬':'\n':s) = linearize s linearize ('\n':'\n':s) = "\n\n" ++ linearize s linearize ('.':'\n':c0:c1:c2:s) | isUpper c0 && isLower c1 && isLower c2 = ".\n\n" ++ c0:c1:c2:linearize s linearize ('.':'\n':'—':s) = ".\n\n—" ++ linearize s linearize ('\n':s) = ' ' : linearize s linearize ('-':'\n':c:s) | isUpper c = '-' : c : linearize s linearize (c:s) = c : linearize s main :: IO () main = getArgs >>= cli where cli [target] = xargs (pure.linearize) target cli _ = syntax "TARGET_DIR"