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