🚧 WIP 🚧
This commit is contained in:
parent
2d434d9b8a
commit
f6cb951c88
1 changed files with 30 additions and 11 deletions
|
@ -137,7 +137,6 @@ parseReviewCmd =
|
||||||
<|> subcommand "retrieve" "Retrieve all the reviews for current branch"
|
<|> subcommand "retrieve" "Retrieve all the reviews for current branch"
|
||||||
(pure ReviewRetrieve)
|
(pure ReviewRetrieve)
|
||||||
|
|
||||||
|
|
||||||
gatherNewReviewInfos :: NewReview -> Text -> IO NewReview
|
gatherNewReviewInfos :: NewReview -> Text -> IO NewReview
|
||||||
gatherNewReviewInfos iss br = do
|
gatherNewReviewInfos iss br = do
|
||||||
user <- if isNothing (user iss)
|
user <- if isNothing (user iss)
|
||||||
|
@ -155,7 +154,7 @@ handleNewReview opts br = do
|
||||||
newReview <- if interactive opts
|
newReview <- if interactive opts
|
||||||
then interactiveNewReview newReviewTmp
|
then interactiveNewReview newReviewTmp
|
||||||
else return newReviewTmp
|
else return newReviewTmp
|
||||||
createTmpNewReview newReview
|
createTmpNewReview newReview br
|
||||||
|
|
||||||
setStatus :: ReviewOptions -> Text -> ReviewOptions
|
setStatus :: ReviewOptions -> Text -> ReviewOptions
|
||||||
setStatus ro status = ro { newReview = (newReview ro) { status = status } }
|
setStatus ro status = ro { newReview = (newReview ro) { status = status } }
|
||||||
|
@ -178,9 +177,11 @@ handleReview (ReviewReject opts) br =
|
||||||
handleReview ReviewShow br = showReview br
|
handleReview ReviewShow br = showReview br
|
||||||
handleReview ReviewRetrieve br = retrieveReview br
|
handleReview ReviewRetrieve br = retrieveReview br
|
||||||
|
|
||||||
communicateFp :: MonadIO m => Turtle.FilePath -> m ()
|
communicateFp :: Turtle.FilePath -> IO ()
|
||||||
communicateFp filepath = do
|
communicateFp filepath = do
|
||||||
let fptxt = format fp filepath
|
let fptxt = format fp filepath
|
||||||
|
mainReviewName <- getMainReviewFile
|
||||||
|
putText $ "Main review file: " <> format fp mainReviewName
|
||||||
putText $ "Review file: " <> fptxt
|
putText $ "Review file: " <> fptxt
|
||||||
export "GPM_REVIEW_FILE" fptxt
|
export "GPM_REVIEW_FILE" fptxt
|
||||||
putText $ "export GPM_REVIEW_FILE=" <> fptxt
|
putText $ "export GPM_REVIEW_FILE=" <> fptxt
|
||||||
|
@ -194,12 +195,25 @@ retrieveReview br = do
|
||||||
cp gpmReviewFile reviewName
|
cp gpmReviewFile reviewName
|
||||||
communicateFp reviewName
|
communicateFp reviewName
|
||||||
|
|
||||||
|
getMainReviewFile :: IO Turtle.FilePath
|
||||||
|
getMainReviewFile = do
|
||||||
|
gpmDataDir <- getGPMDataDir
|
||||||
|
return $ gpmDataDir </> "current-review.org"
|
||||||
|
|
||||||
|
-- | Use a single main name for current review
|
||||||
|
linkReviewFile :: Turtle.FilePath -> IO Turtle.FilePath
|
||||||
|
linkReviewFile reviewFile = do
|
||||||
|
mainReviewFile <- getMainReviewFile
|
||||||
|
debug_ $ format ("ln -s "%fp%" "%fp) reviewFile mainReviewFile
|
||||||
|
return mainReviewFile
|
||||||
|
|
||||||
showReview :: Text -> IO ()
|
showReview :: Text -> IO ()
|
||||||
showReview br = do
|
showReview br = do
|
||||||
reviewName <- getTmpReviewFile br
|
reviewName <- getTmpReviewFile br
|
||||||
|
mainReviewName <- getMainReviewFile
|
||||||
putText "--------------------------------------------------------------------------------"
|
putText "--------------------------------------------------------------------------------"
|
||||||
putText $ format ("Review file: "%fp) reviewName
|
putText $ format ("Review file: "%fp) reviewName
|
||||||
putText $ format ("(setq org-annotate-file-storage-file \""%fp%"\")") reviewName
|
putText $ format ("Main Review file: "%fp) mainReviewName
|
||||||
putText "--------------------------------------------------------------------------------"
|
putText "--------------------------------------------------------------------------------"
|
||||||
stdout (input reviewName)
|
stdout (input reviewName)
|
||||||
putText "--------------------------------------------------------------------------------"
|
putText "--------------------------------------------------------------------------------"
|
||||||
|
@ -225,8 +239,8 @@ getTmpReviewFile br = do
|
||||||
let reviewFilename = "review-" <> protectStr br <> ".org"
|
let reviewFilename = "review-" <> protectStr br <> ".org"
|
||||||
return $ gpmDataDir </> fromString (toS reviewFilename)
|
return $ gpmDataDir </> fromString (toS reviewFilename)
|
||||||
|
|
||||||
createTmpNewReview :: NewReview -> IO ()
|
createTmpNewReview :: NewReview -> Text -> IO ()
|
||||||
createTmpNewReview nr = do
|
createTmpNewReview nr br = do
|
||||||
putText "DEBUG: create temporary file for the new review"
|
putText "DEBUG: create temporary file for the new review"
|
||||||
ecompiled <- automaticCompile ["./templates"] "new-review.org"
|
ecompiled <- automaticCompile ["./templates"] "new-review.org"
|
||||||
case ecompiled of
|
case ecompiled of
|
||||||
|
@ -234,10 +248,10 @@ 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 (fromMaybe "no-name" (branch nr))
|
reviewName <- getTmpReviewFile (fromMaybe br (branch nr))
|
||||||
let tmpReviewFilename = format fp reviewName
|
|
||||||
mktree (directory reviewName)
|
mktree (directory reviewName)
|
||||||
writeFile (toS tmpReviewFilename) (substitute compiled nr)
|
writeFile (toS (format fp reviewName)) (substitute compiled nr)
|
||||||
|
linkReviewFile reviewName
|
||||||
communicateFp reviewName
|
communicateFp reviewName
|
||||||
|
|
||||||
interactiveNewReview :: NewReview -> IO NewReview
|
interactiveNewReview :: NewReview -> IO NewReview
|
||||||
|
@ -258,4 +272,9 @@ interactiveNewReview nr =
|
||||||
ask :: Text -> Text -> (Text -> a) -> IO (Maybe a)
|
ask :: Text -> Text -> (Text -> a) -> IO (Maybe a)
|
||||||
ask field ex tr = do
|
ask field ex tr = do
|
||||||
putText $ "Please enter " <> field <> " ("<> ex <>"): "
|
putText $ "Please enter " <> field <> " ("<> ex <>"): "
|
||||||
fmap (tr . lineToText) <$> readline
|
mline <- readline
|
||||||
|
case mline of
|
||||||
|
Nothing -> return Nothing
|
||||||
|
Just line -> if line == ""
|
||||||
|
then return Nothing
|
||||||
|
else return . Just . tr . lineToText $ line
|
||||||
|
|
Loading…
Reference in a new issue