-- read aligned columns (pasted from Vector NTI), and print variable columns

module Main where

import System.SimpleArgs
import System (getProgName)

import Columns

main :: IO ()
main = do
  xs <- readFile =<< getArgs
  let (hs,ss) = unzip $ map splitLine $ drop 1 $ lines xs
      cols = transpose ss
  putStrLn $ alignCols $ showCols hs $ filterCols [] $ enumerate (last ss) cols

-- | give usage for incorrect number of params
myHead :: [a] -> IO a
myHead [x] = return x
myHead xs  = do pname <- getProgName
                let msg = pname ++ ": extract variable columns from an alignemnt.\n"
                          ++ "Incorrect number of parameters ("++show (length xs)++").\n"
                          ++"Usage: "++pname++" input.file"
                error msg
