{-# LANGUAGE CPP #-} module Main (main) where import Control.Applicative ((<|>)) import Control.Monad (forM_, unless, (>=>)) import Data.Char (toLower) import Data.List (nub, partition, sort) import Data.Maybe (catMaybes, fromMaybe, mapMaybe, maybeToList) import Data.Version (showVersion) import qualified Paths_jammittools as Paths import Sound.Jammit.Base import Sound.Jammit.Export import qualified System.Console.GetOpt as Opt import System.Directory (createDirectoryIfMissing) import qualified System.Environment as Env import System.Exit (exitFailure) import System.FilePath (makeValid, takeDirectory, (<.>), (>)) import Text.PrettyPrint.Boxes (hsep, left, render, text, top, vcat, (/+/)) #if !MIN_VERSION_base(4,8,0) import Control.Applicative ((<$>)) #endif printUsage :: IO () printUsage = do prog <- Env.getProgName putStrLn $ "jammittools v" ++ showVersion Paths.version putStrLn "" let header = "Usage: " ++ prog ++ " -t