module TLynx.TLynx
( tlynx,
rTLynx,
)
where
import ELynx.Tools
import TLynx.Coalesce.Coalesce
import TLynx.Compare.Compare
import TLynx.Connect.Connect
import TLynx.Distance.Distance
import TLynx.Examine.Examine
import TLynx.Options
import TLynx.Shuffle.Shuffle
import TLynx.Simulate.Simulate
tlynx :: Arguments CommandArguments -> IO ()
tlynx c = case local c of
Coalesce _ ->
eLynxWrapper c (\(Arguments g (Coalesce l)) -> Arguments g l) coalesce
Compare _ ->
eLynxWrapper c (\(Arguments g (Compare l)) -> Arguments g l) compareCmd
Connect _ ->
eLynxWrapper c (\(Arguments g (Connect l)) -> Arguments g l) connectCmd
Distance _ ->
eLynxWrapper c (\(Arguments g (Distance l)) -> Arguments g l) distance
Examine _ ->
eLynxWrapper c (\(Arguments g (Examine l)) -> Arguments g l) examine
Shuffle _ ->
eLynxWrapper c (\(Arguments g (Shuffle l)) -> Arguments g l) shuffleCmd
Simulate _ ->
eLynxWrapper c (\(Arguments g (Simulate l)) -> Arguments g l) simulate
rTLynx :: IO ()
rTLynx = parseArguments >>= tlynx