initalize
This commit is contained in:
parent
d343ab3c21
commit
e5530ce70c
|
@ -0,0 +1 @@
|
||||||
|
dist-newstyle/**
|
|
@ -0,0 +1,5 @@
|
||||||
|
# Revision history for based
|
||||||
|
|
||||||
|
## 0.1.0.0 -- YYYY-mm-dd
|
||||||
|
|
||||||
|
* First version. Released on an unsuspecting world.
|
|
@ -0,0 +1,83 @@
|
||||||
|
#!/usr/bin/env runhaskell
|
||||||
|
{-# LANGUAGE DeriveDataTypeable #-}
|
||||||
|
|
||||||
|
module Main where
|
||||||
|
import System.Console.CmdArgs
|
||||||
|
import Control.Arrow
|
||||||
|
import qualified Data.Either.Unwrap as U
|
||||||
|
import qualified Codec.Binary.Base91 as B91
|
||||||
|
import qualified Codec.Binary.Base85 as B85
|
||||||
|
import qualified Codec.Binary.Base64 as B64
|
||||||
|
import qualified Data.Word.Base62 as B62
|
||||||
|
import qualified Codec.Binary.Base32 as B32
|
||||||
|
import qualified Codec.Binary.Base16 as B16
|
||||||
|
import qualified Data.Bytes as Bytes
|
||||||
|
import qualified Data.Bytes.Text.Ascii as ASCII
|
||||||
|
import Data.ByteString.UTF8 as BSU -- from utf8-string
|
||||||
|
import qualified Data.ByteString.Char8 as C
|
||||||
|
|
||||||
|
data Based = Decode {
|
||||||
|
b91 :: Bool,
|
||||||
|
b85 :: Bool,
|
||||||
|
b64 :: Bool,
|
||||||
|
b62 :: Bool,
|
||||||
|
b32 :: Bool,
|
||||||
|
b16 :: Bool
|
||||||
|
}
|
||||||
|
| Encode {
|
||||||
|
b91 :: Bool,
|
||||||
|
b85 :: Bool,
|
||||||
|
b64 :: Bool,
|
||||||
|
b62 :: Bool,
|
||||||
|
b32 :: Bool,
|
||||||
|
b16 :: Bool
|
||||||
|
}
|
||||||
|
deriving(Show, Data, Typeable)
|
||||||
|
|
||||||
|
-- without the show func, sequences like \n will not be shown as characters but will be executed as newline
|
||||||
|
dec91 = C.unpack . B91.decode
|
||||||
|
enc91 = B91.encode . BSU.fromString
|
||||||
|
dec85 = C.unpack . U.fromRight . B85.decode . BSU.fromString
|
||||||
|
enc85 = C.unpack . B85.encode . BSU.fromString
|
||||||
|
dec64 = C.unpack . U.fromRight . B64.decode . BSU.fromString
|
||||||
|
enc64 = C.unpack . B64.encode . BSU.fromString
|
||||||
|
dec62 = show . B62.decode64 . ASCII.fromString
|
||||||
|
enc62 = show . B62.decode64 . ASCII.fromString
|
||||||
|
dec32 = C.unpack . U.fromRight . B32.decode . BSU.fromString
|
||||||
|
enc32 = C.unpack . B32.encode . BSU.fromString
|
||||||
|
dec16 = C.unpack . U.fromRight . B16.decode . BSU.fromString
|
||||||
|
enc16 = C.unpack . B16.encode . BSU.fromString
|
||||||
|
|
||||||
|
|
||||||
|
optionHandler Decode{b91=True} = dec91
|
||||||
|
optionHandler Encode{b91=True} = enc91
|
||||||
|
optionHandler Decode{b85=True} = dec85
|
||||||
|
optionHandler Encode{b85=True} = enc85
|
||||||
|
optionHandler Decode{b64=True} = dec64
|
||||||
|
optionHandler Encode{b64=True} = enc64
|
||||||
|
optionHandler Decode{b62=True} = dec62
|
||||||
|
optionHandler Encode{b62=True} = enc62
|
||||||
|
optionHandler Decode{b32=True} = dec32
|
||||||
|
optionHandler Encode{b32=True} = enc32
|
||||||
|
optionHandler Decode{b16=True} = dec16
|
||||||
|
optionHandler Encode{b16=True} = enc16
|
||||||
|
|
||||||
|
decode_ = Decode {
|
||||||
|
b91 = def &= help "decode base91",
|
||||||
|
b85 = def &= help "decode base85",
|
||||||
|
b64 = def &= help "decode base64",
|
||||||
|
b62 = def &= help "decode base62",
|
||||||
|
b32 = def &= help "decode base32",
|
||||||
|
b16 = def &= help "decode base16"
|
||||||
|
} &= help "Decode chosen base" &=auto
|
||||||
|
|
||||||
|
encode_ = Encode {
|
||||||
|
b91 = def &= help "encode base91",
|
||||||
|
b85 = def &= help "encode base85",
|
||||||
|
b64 = def &= help "encode base64",
|
||||||
|
b62 = def &= help "encode base62",
|
||||||
|
b32 = def &= help "encode base32",
|
||||||
|
b16 = def &= help "encode base16"
|
||||||
|
} &= help "Encode chosen base"
|
||||||
|
|
||||||
|
main = cmdArgs (modes[decode_, encode_] &= help "Anybased, when Cyberchef simply doesn't cut it. " &= program "based" &= summary "Based v0.1") >>= interact . optionHandler
|
|
@ -0,0 +1,4 @@
|
||||||
|
module MyLib (someFunc) where
|
||||||
|
|
||||||
|
someFunc :: IO ()
|
||||||
|
someFunc = putStrLn "someFunc"
|
|
@ -0,0 +1,32 @@
|
||||||
|
cabal-version: 2.4
|
||||||
|
-- Initial package description 'based.cabal' generated by 'cabal init'.
|
||||||
|
-- For further documentation, see http://haskell.org/cabal/users-guide/
|
||||||
|
|
||||||
|
name: based
|
||||||
|
version: 0.1.0.0
|
||||||
|
-- synopsis:
|
||||||
|
-- description:
|
||||||
|
-- bug-reports:
|
||||||
|
-- license:
|
||||||
|
license-file: LICENSE
|
||||||
|
-- author:
|
||||||
|
-- maintainer:
|
||||||
|
-- copyright:
|
||||||
|
-- category:
|
||||||
|
extra-source-files: CHANGELOG.md
|
||||||
|
|
||||||
|
library
|
||||||
|
exposed-modules: MyLib
|
||||||
|
-- other-modules:
|
||||||
|
-- other-extensions:
|
||||||
|
build-depends: base ^>=4.13.0.0
|
||||||
|
-- hs-source-dirs:
|
||||||
|
default-language: Haskell2010
|
||||||
|
|
||||||
|
executable based
|
||||||
|
main-is: Main.hs
|
||||||
|
other-modules: MyLib
|
||||||
|
-- other-extensions:
|
||||||
|
build-depends: base ^>=4.13.0.0, based, cmdargs, sandi, base62, base91, utf8-string, bytestring, byteslice, either-unwrap
|
||||||
|
-- hs-source-dirs:
|
||||||
|
default-language: Haskell2010
|
Loading…
Reference in New Issue