This commit is contained in:
Yann Esposito (Yogsototh) 2018-10-21 11:28:22 +02:00
parent 8a2783470d
commit a79af4e822
Signed by untrusted user who does not match committer: yogsototh
GPG key ID: 7B19A4C650D59646
3 changed files with 28 additions and 17 deletions

View file

@ -9,7 +9,7 @@ Maintainer : yann.esposito@gmail.com
module GPM
where
import Protolude hiding (stdout)
import Protolude
import Turtle

View file

@ -20,18 +20,24 @@ module GPM.Helpers
)
where
import Protolude hiding (die)
import Protolude hiding (die)
import Turtle
import qualified Control.Foldl as Fold
import qualified System.Directory as Directory
import qualified Control.Foldl as Fold
import qualified System.Console.ANSI as Console
import qualified System.Directory as Directory
import qualified System.IO
-- | execute a shell script and return the last line as text
-- but also log the command to the console to minimize surprise
debug :: Text -> IO (Maybe Text)
debug cmd = do
putErrText cmd
Console.setSGR [ Console.SetColor Console.Foreground Console.Dull Console.Cyan
, Console.SetItalicized True
]
putErrText (" " <> cmd)
Console.setSGR [ Console.Reset ]
System.IO.hFlush System.IO.stderr
fmap lineToText <$> _foldIO (inshell cmd empty) (Fold.generalize Fold.last)
-- | execute a shell script without stdin and without handling output
@ -78,11 +84,10 @@ inDir workDir action = do
putTextColor :: Console.Color -> Text -> IO ()
putTextColor color t = do
Console.setSGR [ Console.SetColor Console.Foreground Console.Dull color
, Console.SetConsoleIntensity Console.NormalIntensity
]
Console.setSGR [ Console.SetColor Console.Foreground Console.Dull color ]
putText t
Console.setSGR [Console.Reset]
Console.setSGR [ Console.Reset ]
System.IO.hFlush System.IO.stdout
green :: Text -> IO ()
green = putTextColor Console.Green

View file

@ -43,15 +43,21 @@ data ReviewCommand = ReviewStart ReviewOptions
-- | init gpm branch to handle reviews
init :: IO ()
init = do
green "* Init Reviews support"
let fic = "reviews" </> "write-contributing-yogsototh.org"
mktree "reviews"
putText $ format ("* "%fp) fic
green "* reviews.org"
putText " create some example review for inspiration"
let reviewDir = "reviews"
mktree reviewDir
let fic = reviewDir </> "write-contributing-yogsototh.org"
putText $ format (" "%fp) fic
writeFile (toS (format fp fic)) $(embedStringFile "templates/review.org")
debug_ "git add reviews"
mktree "templates"
writeFile "templates/new-review.org" $(embedStringFile "templates/new-review.org")
debug_ "git add templates"
debug_ (toS (format ("git add "%fp) reviewDir))
putText " create some review templates"
let templateDir = "templates"
templateFic = templateDir </> "new-review.org"
mktree templateDir
writeFile (toS (format fp templateFic)) $(embedStringFile "templates/new-review.org")
putText $ format (" "%fp) templateFic
debug_ (toS (format ("git add "%fp) templateDir))
-- | Command Line Options
data ReviewOptions = ReviewOptions