tlynx-0.3.4: src/TLynx/TLynx.hs
-- |
-- Module : TLynx.TLynx
-- Description : TLynx module
-- Copyright : (c) Dominik Schrempf 2020
-- License : GPL-3.0-or-later
--
-- Maintainer : dominik.schrempf@gmail.com
-- Stability : unstable
-- Portability : portable
--
-- Creation date: Thu Apr 23 16:36:43 2020.
module TLynx.TLynx
( tlynx,
rTLynx,
)
where
import ELynx.Tools
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
-- TODO: Use a class here (e.g., elynx-wrappable) which defines the extractor function.
-- | Run TLynx with given arguments.
tlynx :: Arguments CommandArguments -> IO ()
tlynx c = case local c of
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
-- | Run TLynx, parse arguments from command line.
rTLynx :: IO ()
rTLynx = parseArguments >>= tlynx