use branch name for review
This commit is contained in:
parent
ce3c01c7cd
commit
1322fd5f07
1 changed files with 17 additions and 10 deletions
|
@ -24,6 +24,8 @@ import Turtle
|
||||||
import Data.FileEmbed (embedStringFile)
|
import Data.FileEmbed (embedStringFile)
|
||||||
import GPM.Helpers (getGPMCacheDir, debug_, getGitUser)
|
import GPM.Helpers (getGPMCacheDir, debug_, getGitUser)
|
||||||
import Text.Mustache
|
import Text.Mustache
|
||||||
|
import qualified Data.Text as Text
|
||||||
|
import qualified Data.Char as Char
|
||||||
|
|
||||||
data ReviewCommand = ReviewStart ReviewOptions
|
data ReviewCommand = ReviewStart ReviewOptions
|
||||||
| ReviewCommit
|
| ReviewCommit
|
||||||
|
@ -75,7 +77,7 @@ parseReviewCmd =
|
||||||
<|> subcommand "feedback" "Provide a feedback" (pure ReviewFeedback)
|
<|> subcommand "feedback" "Provide a feedback" (pure ReviewFeedback)
|
||||||
<|> subcommand "question" "Ask a question" (pure ReviewQuestion)
|
<|> subcommand "question" "Ask a question" (pure ReviewQuestion)
|
||||||
<|> subcommand "reject" "Reject the merge" (pure ReviewReject)
|
<|> subcommand "reject" "Reject the merge" (pure ReviewReject)
|
||||||
<|> subcommand "start" "Create a new review" (ReviewStart <$> parseReviewOptions)
|
<|> subcommand "start" "Start a new review" (ReviewStart <$> parseReviewOptions)
|
||||||
<|> subcommand "end" "End a review" (pure ReviewCommit)
|
<|> subcommand "end" "End a review" (pure ReviewCommit)
|
||||||
|
|
||||||
|
|
||||||
|
@ -97,17 +99,21 @@ handleReview (ReviewStart opts) br = do
|
||||||
then interactiveNewReview newReviewTmp
|
then interactiveNewReview newReviewTmp
|
||||||
else return newReviewTmp
|
else return newReviewTmp
|
||||||
createTmpNewReview newReview
|
createTmpNewReview newReview
|
||||||
handleReview ReviewCommit _ = validTmpNewReview
|
handleReview ReviewCommit br = validTmpNewReview br
|
||||||
handleReview ReviewAccept _ = die "TODO"
|
handleReview ReviewAccept _ = die "TODO"
|
||||||
handleReview ReviewFeedback _ = die "TODO"
|
handleReview ReviewFeedback _ = die "TODO"
|
||||||
handleReview ReviewQuestion _ = die "TODO"
|
handleReview ReviewQuestion _ = die "TODO"
|
||||||
handleReview ReviewReject _ = die "TODO"
|
handleReview ReviewReject _ = die "TODO"
|
||||||
|
|
||||||
validTmpNewReview :: IO ()
|
protectStr :: Text -> Text
|
||||||
validTmpNewReview = do
|
protectStr =
|
||||||
tmpReviewFile <- getTmpReviewFile
|
Text.map (\c -> if Char.isAscii c then c else '-')
|
||||||
|
|
||||||
|
validTmpNewReview :: Text -> IO ()
|
||||||
|
validTmpNewReview br = do
|
||||||
|
tmpReviewFile <- getTmpReviewFile br
|
||||||
tmpIssue <- readFile (toS (format fp tmpReviewFile))
|
tmpIssue <- readFile (toS (format fp tmpReviewFile))
|
||||||
appendFile "issues.org" ("\n\n" <> tmpIssue)
|
appendFile ("review-" <> toS (protectStr br) <> ".org") ("\n\n" <> tmpIssue)
|
||||||
|
|
||||||
data NewReview =
|
data NewReview =
|
||||||
NewReview { status :: Text
|
NewReview { status :: Text
|
||||||
|
@ -130,10 +136,11 @@ instance ToMustache NewReview where
|
||||||
, "description" ~> description
|
, "description" ~> description
|
||||||
]
|
]
|
||||||
|
|
||||||
getTmpReviewFile :: IO Turtle.FilePath
|
getTmpReviewFile :: Text -> IO Turtle.FilePath
|
||||||
getTmpReviewFile = do
|
getTmpReviewFile br = do
|
||||||
cacheDir <- getGPMCacheDir
|
cacheDir <- getGPMCacheDir
|
||||||
return $ cacheDir </> "review-feedback.org"
|
let reviewFilename = "review-" <> protectStr br <> ".org"
|
||||||
|
return $ cacheDir </> fromString (toS reviewFilename)
|
||||||
|
|
||||||
createTmpNewReview :: NewReview -> IO ()
|
createTmpNewReview :: NewReview -> IO ()
|
||||||
createTmpNewReview nr = do
|
createTmpNewReview nr = do
|
||||||
|
@ -143,7 +150,7 @@ createTmpNewReview nr = do
|
||||||
print pe
|
print pe
|
||||||
die "Parse ERROR, check your template ./templates/new-review.org"
|
die "Parse ERROR, check your template ./templates/new-review.org"
|
||||||
Right compiled -> do
|
Right compiled -> do
|
||||||
reviewName <- getTmpReviewFile
|
reviewName <- getTmpReviewFile (fromMaybe "no-name" (branch nr))
|
||||||
writeFile (toS (format fp reviewName)) (substitute compiled nr)
|
writeFile (toS (format fp reviewName)) (substitute compiled nr)
|
||||||
|
|
||||||
interactiveNewReview :: NewReview -> IO NewReview
|
interactiveNewReview :: NewReview -> IO NewReview
|
||||||
|
|
Loading…
Reference in a new issue