diff options
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 |