packages feed

base91-2.0.0: Main.hs

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

module Main (main) where

import System.Environment (getArgs, getProgName)

import qualified Codec.Binary.Base91 as Base91
import qualified Data.ByteString     as BS
import qualified Data.Text.IO        as T

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