ref: ef3d5eb28f6145d1a860901c9abe3fe0f18b777f
dir: /Tools/Addcombs.hs/
module Main where
import System.Environment
chunkify :: Int -> [Char] -> [[Char]]
chunkify n [] = []
chunkify n xs =
let (as, bs) = splitAt n xs
in as : chunkify n bs
showChunk :: [Char] -> String
showChunk = concatMap (\ c -> show (fromEnum c) ++ ",")
main :: IO ()
main = do
args <- getArgs
file <- readFile (head args)
let size = length file
chunks = chunkify 20 file
putStrLn $ "struct { size_t b_size; size_t b_pos; uint8_t b_buffer[]; } combs = { " ++ show size ++ ", 0, {"
mapM_ (putStrLn . showChunk) chunks
putStrLn "}};"
putStrLn "BFILE *comb_internal = (BFILE*)&combs;"