-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.hs
More file actions
23 lines (18 loc) · 733 Bytes
/
Main.hs
File metadata and controls
23 lines (18 loc) · 733 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-- 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