convert version command, and make --raw work when not in a git repo

This commit is contained in:
Joey Hess 2015-07-10 13:49:46 -04:00
parent b4d22e6d49
commit 4064dd4c82
5 changed files with 51 additions and 51 deletions

View file

@ -35,7 +35,7 @@ import Logs.View (is_branchView)
import Annex.BloomFilter
cmd :: Command
cmd = withOptions [unusedFromOption, refSpecOption] $
cmd = -- withGlobalOptions [unusedFromOption, refSpecOption] $
command "unused" SectionMaintenance
"look for unused file content"
paramNothing (withParams seek)

View file

@ -18,40 +18,41 @@ import qualified Remote
import qualified Backend
cmd :: Command
cmd = withOptions [rawOption] $ dontCheck repoExists $ noCommit $
noRepo (parseparams startNoRepo) $
cmd = dontCheck repoExists $ noCommit $
noRepo (seekNoRepo <$$> optParser) $
command "version" SectionQuery "show version info"
paramNothing (parseparams seek)
where
parseparams = withParams
paramNothing (seek <$$> optParser)
rawOption :: Option
rawOption = flagOption [] "raw" "output only program version"
data VersionOptions = VersionOptions
{ rawOption :: Bool
}
seek :: CmdParams -> CommandSeek
seek = withNothing $ ifM (getOptionFlag rawOption) (startRaw, start)
optParser :: CmdParamsDesc -> Parser VersionOptions
optParser _ = VersionOptions
<$> switch
( long "raw"
<> help "output only program version"
)
startRaw :: CommandStart
startRaw = do
liftIO $ do
putStr SysConfig.packageversion
hFlush stdout
stop
seek :: VersionOptions -> CommandSeek
seek o
| rawOption o = liftIO showRawVersion
| otherwise = showVersion
start :: CommandStart
start = do
seekNoRepo :: VersionOptions -> IO ()
seekNoRepo o
| rawOption o = showRawVersion
| otherwise = showPackageVersion
showVersion :: Annex ()
showVersion = do
v <- getVersion
liftIO $ do
showPackageVersion
vinfo "local repository version" $ fromMaybe "unknown" v
vinfo "supported repository version" supportedVersion
vinfo "upgrade supported from repository versions" $
unwords upgradableVersions
stop
startNoRepo :: CmdParams -> IO ()
startNoRepo _ = showPackageVersion
showPackageVersion :: IO ()
showPackageVersion = do
@ -60,5 +61,10 @@ showPackageVersion = do
vinfo "key/value backends" $ unwords $ map B.name Backend.list
vinfo "remote types" $ unwords $ map R.typename Remote.remoteTypes
showRawVersion :: IO ()
showRawVersion = do
putStr SysConfig.packageversion
hFlush stdout -- no newline, so flush
vinfo :: String -> String -> IO ()
vinfo k v = putStrLn $ k ++ ": " ++ v