packages feed

base91-1.0.0: Main.hs

-- Copyright 2015 Alvaro J. Genial (http://alva.ro) -- see LICENSE.md for more.

module Main (main) where

import Codec.Binary.Base91.Efficient as Base91
import Data.ByteString as BS
import Data.Text.IO as T
import System.Environment (getArgs, getProgName)

main :: IO ()
main = getProgName >>= \name -> getArgs >>= \args -> case name:args of
    "b91enc":[]    -> encode
    "b91dec":[]    -> decode
    _:["-e"]       -> encode
    _:["-d"]       -> decode
    _:["--encode"] -> encode
    _:["--decode"] -> decode
    _              -> error "missing or invalid arguments"

  where
    encode  = BS.getContents >>= T.putStrLn . Base91.encode
    decode  = T.getContents >>= BS.putStr . Base91.decode