From f3c75b601f7a8a46d1e5a064f5c3eb5d828998ab Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 17 Feb 2012 00:19:47 -0400 Subject: reorg --- Command/Migrate.hs | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Command/Migrate.hs b/Command/Migrate.hs index b837ef827..6e28c4b52 100644 --- a/Command/Migrate.hs +++ b/Command/Migrate.hs @@ -47,18 +47,18 @@ upgradableKey key = isNothing $ Types.Key.keySize key - generate. -} perform :: FilePath -> Key -> Backend -> CommandPerform -perform file oldkey newbackend = do - src <- inRepo $ gitAnnexLocation oldkey - tmp <- fromRepo gitAnnexTmpDir - let tmpfile = tmp takeFileName file - cleantmp tmpfile - liftIO $ createLink src tmpfile - k <- Backend.genKey tmpfile $ Just newbackend - cleantmp tmpfile - case k of - Nothing -> stop - Just (newkey, _) -> - stopUnless (Command.ReKey.linkKey oldkey newkey) $ - next $ Command.ReKey.cleanup file oldkey newkey +perform file oldkey newbackend = maybe stop go =<< genkey where + go newkey = stopUnless (Command.ReKey.linkKey oldkey newkey) $ + next $ Command.ReKey.cleanup file oldkey newkey + genkey = do + src <- inRepo $ gitAnnexLocation oldkey + tmp <- fromRepo gitAnnexTmpDir + let tmpfile = tmp takeFileName file + cleantmp tmpfile + liftIO $ createLink src tmpfile + newkey <- liftM fst <$> + Backend.genKey tmpfile (Just newbackend) + cleantmp tmpfile + return newkey cleantmp t = liftIO $ whenM (doesFileExist t) $ removeFile t -- cgit v1.2.3