fa3045aa8b
Option parsing for commands that run outside git repos is still screwy, as there is no Annex monad and so the flags cannot be passed in. But, any remaining parameters can be, which is enough for this fix.
51 lines
1.3 KiB
Haskell
51 lines
1.3 KiB
Haskell
{- git-annex command
|
|
-
|
|
- Copyright 2010 Joey Hess <joey@kitenet.net>
|
|
-
|
|
- Licensed under the GNU GPL version 3 or higher.
|
|
-}
|
|
|
|
module Command.Version where
|
|
|
|
import Common.Annex
|
|
import Command
|
|
import qualified Build.SysConfig as SysConfig
|
|
import Annex.Version
|
|
import BuildFlags
|
|
import qualified Types.Backend as B
|
|
import qualified Types.Remote as R
|
|
import qualified Remote
|
|
import qualified Backend
|
|
|
|
def :: [Command]
|
|
def = [noCommit $ noRepo startNoRepo $ dontCheck repoExists $
|
|
command "version" paramNothing seek SectionQuery "show version info"]
|
|
|
|
seek :: [CommandSeek]
|
|
seek = [withNothing start]
|
|
|
|
start :: CommandStart
|
|
start = do
|
|
v <- getVersion
|
|
liftIO $ do
|
|
showPackageVersion
|
|
info "local repository version" $ fromMaybe "unknown" v
|
|
info "default repository version" defaultVersion
|
|
info "supported repository versions" $
|
|
unwords supportedVersions
|
|
info "upgrade supported from repository versions" $
|
|
unwords upgradableVersions
|
|
stop
|
|
|
|
startNoRepo :: CmdParams -> IO ()
|
|
startNoRepo _ = showPackageVersion
|
|
|
|
showPackageVersion :: IO ()
|
|
showPackageVersion = do
|
|
info "git-annex version" SysConfig.packageversion
|
|
info "build flags" $ unwords buildFlags
|
|
info "key/value backends" $ unwords $ map B.name Backend.list
|
|
info "remote types" $ unwords $ map R.typename Remote.remoteTypes
|
|
|
|
info :: String -> String -> IO ()
|
|
info k v = putStrLn $ k ++ ": " ++ v
|