import qualified Data.ByteString as B import System.Environment import Data.ByteString.Base64 main = do (kind:files) <- getArgs let xcode bs = case kind of "decode" -> case decode bs of Left err -> putStrLn err Right p -> B.putStr p "decodeLenient" -> B.putStr (decodeLenient bs) "encode" -> B.putStr (encode bs) "read" -> B.putStr bs case files of [] -> B.getContents >>= xcode fs -> mapM_ (\f -> B.readFile f >>= xcode) fs