module HSH.Helpers.FileManip where
import System.Directory
import System.FilePath (takeDirectory)
import qualified Data.ByteString.Char8 as B
import HSH
import Text.StringTemplate.Helpers
import HSH.Helpers.UnixUsers
writeFileForceB = writeFileForce' B.writeFile
writeFileForce = writeFileForce' writeFile
writeFileForce' w fp contents = do
createDirectoryIfMissing True (takeDirectory fp)
w fp contents
data SymlinkArgs = SymLinkArgs{target::String, link::String}
deriving Show
symlink slArgs = runIO $ render1 [("target",target slArgs),("link",link slArgs)] "ln -fs $target$ $link$"
findDirectories :: FilePath -> IO [FilePath]
findDirectories d = runStrings $ render1 [("d",d)] "find $d$ -type d"
runS :: String -> IO String
runS = run
runStrings :: String -> IO [String]
runStrings = ( return . lines =<< ) . run