diff options
author | Joey Hess <joey@kitenet.net> | 2011-08-17 14:14:43 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-08-17 14:44:31 -0400 |
commit | 56f6923ccbc6fb1932137b53458a4cece47e69b0 (patch) | |
tree | a2c9a949f2c6c5163551a76f4012e7606e3c1463 /Command | |
parent | 3b5f7221305ba6e768711d8326a01b78fb1e4f79 (diff) |
Now "git annex init" only has to be run once
when a git repository is first being created. Clones will automatically
notice that git-annex is in use and automatically perform a basic
initalization. It's still recommended to run "git annex init" in any
clones, to describe them.
Diffstat (limited to 'Command')
-rw-r--r-- | Command/Init.hs | 38 | ||||
-rw-r--r-- | Command/Uninit.hs | 17 |
2 files changed, 5 insertions, 50 deletions
diff --git a/Command/Init.hs b/Command/Init.hs index 71e87050d..019106051 100644 --- a/Command/Init.hs +++ b/Command/Init.hs @@ -7,19 +7,13 @@ module Command.Init where -import Control.Monad.State (liftIO) -import Control.Monad (when, unless) -import System.Directory +import Control.Monad (when) import Command import qualified Annex -import qualified Git -import qualified Branch import UUID -import Version import Messages -import Types -import Utility +import Init command :: [Command] command = [standaloneCommand "init" paramDesc seek @@ -39,34 +33,8 @@ start ws = do perform :: String -> CommandPerform perform description = do - Branch.create + initialize g <- Annex.gitRepo u <- getUUID g - setVersion describeUUID u description - unless (Git.repoIsLocalBare g) $ - gitPreCommitHookWrite g next $ return True - -{- set up a git pre-commit hook, if one is not already present -} -gitPreCommitHookWrite :: Git.Repo -> Annex () -gitPreCommitHookWrite repo = do - exists <- liftIO $ doesFileExist hook - if exists - then warning $ "pre-commit hook (" ++ hook ++ ") already exists, not configuring" - else liftIO $ do - viaTmp writeFile hook preCommitScript - p <- getPermissions hook - setPermissions hook $ p {executable = True} - where - hook = preCommitHook repo - -preCommitHook :: Git.Repo -> FilePath -preCommitHook repo = - Git.workTree repo ++ "/" ++ Git.gitDir repo ++ "/hooks/pre-commit" - -preCommitScript :: String -preCommitScript = - "#!/bin/sh\n" ++ - "# automatically configured by git-annex\n" ++ - "git annex pre-commit .\n" diff --git a/Command/Uninit.hs b/Command/Uninit.hs index 8b8d7e364..195246aa8 100644 --- a/Command/Uninit.hs +++ b/Command/Uninit.hs @@ -12,13 +12,11 @@ import System.Directory import System.Exit import Command -import Messages -import Types import Utility import qualified Git import qualified Annex import qualified Command.Unannex -import qualified Command.Init +import Init import qualified Branch import Content import Locations @@ -47,7 +45,7 @@ perform = next cleanup cleanup :: CommandCleanup cleanup = do g <- Annex.gitRepo - gitPreCommitHookUnWrite g + uninitialize mapM_ removeAnnex =<< getKeysPresent liftIO $ removeDirectoryRecursive (gitAnnexDir g) -- avoid normal shutdown @@ -55,14 +53,3 @@ cleanup = do liftIO $ do Git.run g "branch" [Param "-D", Param Branch.name] exitSuccess - -gitPreCommitHookUnWrite :: Git.Repo -> Annex () -gitPreCommitHookUnWrite repo = do - let hook = Command.Init.preCommitHook repo - whenM (liftIO $ doesFileExist hook) $ do - c <- liftIO $ readFile hook - if c == Command.Init.preCommitScript - then liftIO $ removeFile hook - else warning $ "pre-commit hook (" ++ hook ++ - ") contents modified; not deleting." ++ - " Edit it to remove call to git annex." |