summaryrefslogtreecommitdiff
path: root/Command/Uninit.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-07-04 15:50:30 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-07-04 15:50:30 -0400
commit5c63b409d4b046f2179ae3c542bfd47d86c8c90c (patch)
tree7981cc3071b5f836c7971280d4261dec3d4eb131 /Command/Uninit.hs
parentbd54dadb0b92945db9fc004d03d1fb32a453225c (diff)
uninit: Delete the git-annex branch.
Diffstat (limited to 'Command/Uninit.hs')
-rw-r--r--Command/Uninit.hs17
1 files changed, 12 insertions, 5 deletions
diff --git a/Command/Uninit.hs b/Command/Uninit.hs
index c47ac0c3a..22006f7dc 100644
--- a/Command/Uninit.hs
+++ b/Command/Uninit.hs
@@ -9,6 +9,7 @@ module Command.Uninit where
import Control.Monad.State (liftIO)
import System.Directory
+import System.Exit
import Command
import Messages
@@ -18,6 +19,8 @@ import qualified Git
import qualified Annex
import qualified Command.Unannex
import qualified Command.Init
+import qualified Branch
+import Content
command :: [Command]
command = [repoCommand "uninit" paramPath seek
@@ -27,15 +30,19 @@ seek :: [CommandSeek]
seek = [withFilesInGit Command.Unannex.start, withNothing start]
start :: CommandStartNothing
-start = do
- showStart "uninit" ""
- next perform
+start = next perform
perform :: CommandPerform
-perform = do
+perform = next cleanup
+
+cleanup :: CommandCleanup
+cleanup = do
g <- Annex.gitRepo
gitPreCommitHookUnWrite g
- next $ return True
+ saveState
+ liftIO $ Git.run g "branch" [Param "-D", Param Branch.name]
+ -- bypass normal shutdown, which writes to the deleted branch
+ liftIO exitSuccess
gitPreCommitHookUnWrite :: Git.Repo -> Annex ()
gitPreCommitHookUnWrite repo = do