summaryrefslogtreecommitdiff
path: root/Command/Describe.hs
blob: 643ca047187c6a87dc4498790a4d8f09904f454e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{- git-annex command
 -
 - Copyright 2011 Joey Hess <joey@kitenet.net>
 -
 - Licensed under the GNU GPL version 3 or higher.
 -}

module Command.Describe where


import Command
import qualified GitRepo as Git
import qualified Remotes
import UUID
import Messages
import qualified Command.Init

command :: [Command]
command = [Command "describe" (paramPair paramRemote paramDesc) seek
	"change description of a repository"]

seek :: [CommandSeek]
seek = [withString start]

start :: CommandStartString
start params = notBareRepo $ do
	let (name, description) =
		case (words params) of
			(n:d) -> (n,unwords d)
			_ -> error "Specify a repository and a description."
	
	showStart "describe" name
	Remotes.readConfigs
	r <- Remotes.byName name
	return $ Just $ perform r description

perform :: Git.Repo -> String -> CommandPerform
perform repo description = do
	u <- getUUID repo
	describeUUID u description
	return $ Just $ Command.Init.cleanup