module Database.TxtSushi.Util.IOUtil (
bufferStdioToTempFile,
getContentsFromFileOrStdin,
printSingleFileUsage) where
import Data.List
import Data.Version (Version(..))
import System.Directory
import System.Environment
import System.IO
import Paths_txt_sushi
bufferStdioToTempFile :: IO FilePath
bufferStdioToTempFile = do
stdioText <- getContents
tempDir <- getTemporaryDirectory
(tempFilePath, tempFileHandle) <- openTempFile tempDir "stdiobuffer.txt"
hPutStr tempFileHandle stdioText
hClose tempFileHandle
return tempFilePath
getContentsFromFileOrStdin :: String -> IO String
getContentsFromFileOrStdin filePath =
if filePath == "-"
then getContents
else readFile filePath
printSingleFileUsage :: IO ()
printSingleFileUsage = do
progName <- getProgName
putStrLn $ progName ++ " (" ++ versionStr ++ ")"
putStrLn $ "Usage: " ++ progName ++ " file_name_or_dash"
where
versionStr = intercalate "." (map show . versionBranch $ version)