module PathFormat where
import qualified System.FilePath as StrPath
import qualified System.Path.PartClass as PathC
import qualified System.Path.Part as PathPart
import qualified System.Path as Path
import System.Path ((</>), )
import qualified Text.Printf as Pf
data File ar = File (Path.Dir ar) FilePath
type AbsRelFile = File PathPart.AbsRel
printf :: (PathC.AbsRel ar) => File ar -> Int -> Path.File ar
printf (File dir fmt) arg =
dir </> Path.relFile (Pf.printf fmt arg)
parse :: (PathC.AbsRel ar) => String -> Either String (File ar)
parse str = do
let (dir, file) = StrPath.splitFileName str
dirPath <- Path.parse dir
return $ File dirPath file