packages feed

pixelated-avatar-generator-0.1.0: app/Main.hs

module Main where

import Graphics.Avatars.Pixelated
import System.Environment (getArgs)

main :: IO ()
main = do
  args <- getArgs
  checkForProperArgs args
  let path = head args
  let seedString = args !! 1
  putStrLn $ "Creating avatar at " ++ path
  createAndSaveAvatar path seedString
  putStrLn $ "Successfully created avatar, and saved it to " ++ path

checkForProperArgs :: [String] -> IO ()
checkForProperArgs args = if length args /= 2
                          then error $ "Improper number of arguments.\n\n" ++ usageInfo
                          else return ()

usageInfo :: String
usageInfo = unlines [
     "Usage: pixelated-avatar-generator FILEPATH SEEDSTRING"
   , ""
   , "FILEPATH   -- The location to save the generated avatar at. \"img/test.png\""
   , "SEEDSTRING -- The string to use to generate the avatar. \"Hello\""
  ]

createAndSaveAvatar :: FilePath -> String -> IO ()
createAndSaveAvatar path s = do
  let seed = createSeed s
  let avatar = generateAvatar seed
  print avatar
  let avatarScaled = scaleAvatar 32 avatar
  saveAvatar avatarScaled path