module Main where

import System.IO
import System.Random
import System.Directory
import List

data Config = Config {standardPrefix :: String,
                      standardPostfix :: String
                     }
     deriving (Show, Read)

defaultConfig = Config {standardPrefix = "",
                        standardPostfix = ""
                       }

processConfig :: FilePath -> IO Config
processConfig fn = do cfgfile <- readFile fn
                      return $ ((read cfgfile)::Config)

main = do dir <- getCurrentDirectory
          files <- getDirectoryContents dir
          cfg <- if (".siggen" `elem` files) then
                   processConfig ".siggen"
                  else
                   return defaultConfig          
          sigfiles <- return $ filter (\x -> ".sig" `isSuffixOf` x) files
          case sigfiles of
           [] -> putStr (standardPrefix cfg ++ standardPostfix cfg)
           fs -> do n <- getStdRandom (randomR (0, length fs - 1))                    
                    sigInfix <- readFile (sigfiles !! n)
                    putStr (standardPrefix cfg ++ 
                            sigInfix ++ 
                            standardPostfix cfg
                           )
