diff options
author | 2012-10-01 15:12:04 -0400 | |
---|---|---|
committer | 2012-10-01 15:12:04 -0400 | |
commit | 59d2f363b7a2762978978bb3edf62aa47ef81abd (patch) | |
tree | 6519760756a8d9cef3558a91ab3cbc69f1e58ac3 /Command/Ungroup.hs | |
parent | 65315e13716443be3c50f7e556a1206a45df2a32 (diff) |
group, ungroup: New commands to indicate groups of repositories.
Diffstat (limited to 'Command/Ungroup.hs')
-rw-r--r-- | Command/Ungroup.hs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Command/Ungroup.hs b/Command/Ungroup.hs new file mode 100644 index 000000000..2161cec91 --- /dev/null +++ b/Command/Ungroup.hs @@ -0,0 +1,35 @@ +{- git-annex command + - + - Copyright 2012 Joey Hess <joey@kitenet.net> + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module Command.Ungroup where + +import Common.Annex +import Command +import qualified Remote +import Logs.Group +import Types.Group + +import qualified Data.Set as S + +def :: [Command] +def = [command "ungroup" (paramPair paramRemote paramDesc) seek "remove a repository from a group"] + +seek :: [CommandSeek] +seek = [withWords start] + +start :: [String] -> CommandStart +start (name:g:[]) = do + showStart "ungroup" name + u <- Remote.nameToUUID name + next $ perform u g +start _ = error "Specify a repository and a group." + +perform :: UUID -> Group -> CommandPerform +perform uuid g = do + s <- lookupGroups uuid + groupSet uuid (S.delete g s) + next $ return True |