2013-10-20 17:50:51 -04:00
|
|
|
{- git-recover-repository program
|
|
|
|
-
|
2013-10-22 14:39:45 -04:00
|
|
|
- Copyright 2013 Joey Hess <joey@kitenet.net>
|
2013-10-20 17:50:51 -04:00
|
|
|
-
|
|
|
|
- Licensed under the GNU GPL version 3 or higher.
|
|
|
|
-}
|
|
|
|
|
|
|
|
import System.Environment
|
|
|
|
import qualified Data.Set as S
|
2013-10-23 13:13:40 -04:00
|
|
|
import Data.Tuple.Utils
|
2013-10-20 17:50:51 -04:00
|
|
|
|
|
|
|
import Common
|
2013-10-22 13:08:23 -04:00
|
|
|
import qualified Git
|
2013-10-20 17:50:51 -04:00
|
|
|
import qualified Git.CurrentRepo
|
2013-10-22 14:39:45 -04:00
|
|
|
import qualified Git.Fsck
|
2013-10-23 12:58:01 -04:00
|
|
|
import qualified Git.Repair
|
2013-10-20 17:50:51 -04:00
|
|
|
import qualified Git.Config
|
2013-10-21 16:19:00 -04:00
|
|
|
import qualified Git.Branch
|
2013-10-20 17:50:51 -04:00
|
|
|
|
|
|
|
header :: String
|
|
|
|
header = "Usage: git-recover-repository"
|
|
|
|
|
|
|
|
usage :: a
|
|
|
|
usage = error $ "bad parameters\n\n" ++ header
|
|
|
|
|
|
|
|
parseArgs :: IO Bool
|
|
|
|
parseArgs = do
|
|
|
|
args <- getArgs
|
|
|
|
return $ or $ map parse args
|
|
|
|
where
|
|
|
|
parse "--force" = True
|
|
|
|
parse _ = usage
|
|
|
|
|
|
|
|
main :: IO ()
|
|
|
|
main = do
|
|
|
|
forced <- parseArgs
|
|
|
|
|
|
|
|
g <- Git.Config.read =<< Git.CurrentRepo.get
|
2013-10-23 13:13:40 -04:00
|
|
|
ifM (fst3 <$> Git.Repair.runRepair forced g)
|
2013-10-23 12:21:59 -04:00
|
|
|
( exitSuccess
|
|
|
|
, exitFailure
|
|
|
|
)
|