summaryrefslogtreecommitdiff
path: root/main/Main.hs
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2024-02-14 21:44:45 +0100
committerRoman Smrž <roman.smrz@seznam.cz>2024-02-14 21:46:21 +0100
commit0ed3f76533cde17322cf04018713d70c2f78d490 (patch)
treeee54fc7b27502ac0b9faf2ba54be13408aff7643 /main/Main.hs
parent8105c4ba4636c58b85f0235d2d1b53a0682b1a6a (diff)
Version information from git
Changelog: Added -V switch to show version
Diffstat (limited to 'main/Main.hs')
-rw-r--r--main/Main.hs11
1 files changed, 10 insertions, 1 deletions
diff --git a/main/Main.hs b/main/Main.hs
index 72af295..3359598 100644
--- a/main/Main.hs
+++ b/main/Main.hs
@@ -46,14 +46,17 @@ import Erebos.Storage.Merge
import Erebos.Sync
import Test
+import Version
data Options = Options
{ optServer :: ServerOptions
+ , optShowVersion :: Bool
}
defaultOptions :: Options
defaultOptions = Options
{ optServer = defaultServerOptions
+ , optShowVersion = False
}
options :: [OptDescr (Options -> Options)]
@@ -64,6 +67,9 @@ options =
, Option ['s'] ["silent"]
(NoArg (so $ \opts -> opts { serverLocalDiscovery = False }))
"do not send announce packets for local discovery"
+ , Option ['V'] ["version"]
+ (NoArg $ \opts -> opts { optShowVersion = True })
+ "show version and exit"
]
where so f opts = opts { optServer = f $ optServer opts }
@@ -125,7 +131,10 @@ main = do
(o, [], []) -> return (foldl (flip id) defaultOptions o)
(_, _, errs) -> ioError (userError (concat errs ++ usageInfo header options))
where header = "Usage: erebos [OPTION...]"
- interactiveLoop st opts
+
+ if optShowVersion opts
+ then putStrLn versionLine
+ else interactiveLoop st opts
interactiveLoop :: Storage -> Options -> IO ()