hledger/tools/dayssincetag.hs
2014-05-01 08:14:04 -07:00

24 lines
802 B
Haskell
Executable File

#!/usr/bin/env runhaskell
{-
Display the current darcs repository's last tag and the number of days since.
Similar to:
$ darcs changes --to-tag . --from-tag .|head -n 1 |cut -d' ' -f-7 |xargs -I {} date -d "{}" +%s |xargs -I {} expr \( $(date +%s) - {} \) / 60 / 60 / 24
-}
import Data.Time
import System.Environment
import System.Locale
import System.Process
main = do
tag:_ <- getArgs
s <- readProcess "darcs" ["changes","--from-tag",tag,"--to-tag",tag] ""
let datestr = unwords $ take 6 $ words $ head $ lines s
date = readTime defaultTimeLocale "%a %b %e %H:%M:%S %Z %Y" datestr :: Day
today <- getCurrentDay
putStrLn $ show (diffDays today date) ++ " days since tag "++tag++":\n"
putStr s
getCurrentDay = do
t <- getZonedTime
return $ localDay (zonedTimeToLocalTime t)