packages feed

dotfs-0.1.1.3: System/DotFS/Util/Sanity.hs

{-# LANGUAGE Haskell98 #-}
module System.DotFS.Util.Sanity where

import System.DotFS.Core.Datatypes
import System.DotFS.Util.Options

import System.IO
import System.Directory
import Control.Monad
import System.Exit

validateDirs :: [String] -> IO (String, Conf)
validateDirs dirs =
                   do
                      existingDirs <- filterM doesDirectoryExist dirs
                      canonicalDirs <- mapM canonicalizePath existingDirs
                      if length canonicalDirs == 2 then do
                          let (confdir : mountpoint : []) = canonicalDirs
                          return (mountpoint, C confdir)
                         else do
                           hPutStrLn stderr "Invalid director(y|ies)"
                           _ <- printHelp defaultOptions
                           exitWith $ ExitFailure 1