From ae389aa14499c85b817261204cb0ee1bb50b3b0c Mon Sep 17 00:00:00 2001 From: Filip Gralinski Date: Mon, 4 Jun 2018 21:58:05 +0200 Subject: [PATCH] refactor cloning cntd. --- Handler/CreateChallenge.hs | 4 ++-- Handler/Shared.hs | 9 ++++----- Handler/ShowChallenge.hs | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Handler/CreateChallenge.hs b/Handler/CreateChallenge.hs index 319525e..ec61a71 100644 --- a/Handler/CreateChallenge.hs +++ b/Handler/CreateChallenge.hs @@ -51,7 +51,7 @@ postCreateChallengeR = do doCreateChallenge :: Text -> Text -> Text -> Text -> Text -> Channel -> Handler () doCreateChallenge name publicUrl publicBranch privateUrl privateBranch chan = do - maybePublicRepoId <- cloneRepo (RepoSpec { + maybePublicRepoId <- cloneRepo (RepoCloningSpec { repoSpecUrl = publicUrl, repoSpecBranch = publicBranch, repoSpecReferenceUrl = publicUrl, @@ -60,7 +60,7 @@ doCreateChallenge name publicUrl publicBranch privateUrl privateBranch chan = do Just publicRepoId -> do publicRepo <- runDB $ get404 publicRepoId publicRepoDir <- getRepoDir publicRepoId - maybePrivateRepoId <- cloneRepo (RepoSpec { + maybePrivateRepoId <- cloneRepo (RepoCloningSpec { repoSpecUrl = privateUrl, repoSpecBranch = privateBranch, repoSpecReferenceUrl =(T.pack $ publicRepoDir), diff --git a/Handler/Shared.hs b/Handler/Shared.hs index a8bc8d2..dd26152 100644 --- a/Handler/Shared.hs +++ b/Handler/Shared.hs @@ -122,7 +122,7 @@ validGitProtocols = ["git", "http", "https", "ssh"] validGitProtocolsAsText :: Text validGitProtocolsAsText = T.pack $ intercalate ", " $ map (++"://") validGitProtocols -data RepoSpec = RepoSpec { +data RepoCloningSpec = RepoCloningSpec { repoSpecUrl :: Text, repoSpecBranch :: Text, @@ -130,8 +130,7 @@ data RepoSpec = RepoSpec { repoSpecReferenceBranch :: Text } - -cloneRepo :: RepoSpec -> Channel -> Handler (Maybe (Key Repo)) +cloneRepo :: RepoCloningSpec -> Channel -> Handler (Maybe (Key Repo)) cloneRepo repoSpec chan = do let url = repoSpecUrl repoSpec let branch = repoSpecBranch repoSpec @@ -187,7 +186,7 @@ getLastCommitMessage repoDir chan = do ExitSuccess -> Just out ExitFailure _ -> Nothing -cloneRepo' :: RepoSpec -> Channel -> Handler (Maybe (Key Repo)) +cloneRepo' :: RepoCloningSpec -> Channel -> Handler (Maybe (Key Repo)) cloneRepo' repoSpec chan = do let url = repoSpecUrl repoSpec msg chan $ concat ["Preparing to clone repo ", url] @@ -225,7 +224,7 @@ cloneRepo' repoSpec chan = do err chan $ concat ["Wrong URL to a Git repo (note that one of the following protocols must be specified: ", validGitProtocolsAsText] return Nothing -rawClone :: FilePath -> RepoSpec -> Channel -> Handler (ExitCode) +rawClone :: FilePath -> RepoCloningSpec -> Channel -> Handler (ExitCode) rawClone tmpRepoDir repoSpec chan = do let url = repoSpecUrl repoSpec let branch = repoSpecBranch repoSpec diff --git a/Handler/ShowChallenge.hs b/Handler/ShowChallenge.hs index e2efa7b..dae940f 100644 --- a/Handler/ShowChallenge.hs +++ b/Handler/ShowChallenge.hs @@ -333,7 +333,7 @@ getSubmissionRepo challengeId url branch chan = do let repoId = challengePublicRepo challenge repo <- runDB $ get404 repoId repoDir <- getRepoDir repoId - let repoSpec = RepoSpec { + let repoSpec = RepoCloningSpec { repoSpecUrl = url, repoSpecBranch = branch, repoSpecReferenceUrl = (T.pack repoDir),