summaryrefslogtreecommitdiff
path: root/Command/Reinit.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Command/Reinit.hs')
-rw-r--r--Command/Reinit.hs38
1 files changed, 38 insertions, 0 deletions
diff --git a/Command/Reinit.hs b/Command/Reinit.hs
new file mode 100644
index 000000000..0fc1e8314
--- /dev/null
+++ b/Command/Reinit.hs
@@ -0,0 +1,38 @@
+{- git-annex command
+ -
+ - Copyright 2014 Joey Hess <joey@kitenet.net>
+ -
+ - Licensed under the GNU GPL version 3 or higher.
+ -}
+
+module Command.Reinit where
+
+import Common.Annex
+import Command
+import Annex.Init
+import Annex.UUID
+import Types.UUID
+import qualified Remote
+
+def :: [Command]
+def = [dontCheck repoExists $
+ command "reinit" (paramUUID ++ " or " ++ paramDesc) seek SectionUtility ""]
+
+seek :: CommandSeek
+seek = withWords start
+
+start :: [String] -> CommandStart
+start ws = do
+ showStart "reinit" s
+ next $ perform s
+ where
+ s = unwords ws
+
+perform :: String -> CommandPerform
+perform s = do
+ u <- if isUUID s
+ then return $ toUUID s
+ else Remote.nameToUUID s
+ storeUUID u
+ initialize'
+ next $ return True