add webapp UI to manage unused files

This commit is contained in:
Joey Hess 2014-01-23 15:09:43 -04:00
parent 9418685b5d
commit e0bd088f08
11 changed files with 243 additions and 78 deletions

View file

@ -7,7 +7,10 @@
module Utility.HumanTime (
Duration(..),
durationSince,
durationToPOSIXTime,
durationToDays,
daysToDuration,
parseDuration,
fromDuration,
prop_duration_roundtrips
@ -17,6 +20,7 @@ import Utility.PartialPrelude
import Utility.Applicative
import Utility.QuickCheck
import Data.Time.Clock
import Data.Time.Clock.POSIX (POSIXTime)
import Data.Char
import Control.Applicative
@ -25,9 +29,20 @@ import qualified Data.Map as M
newtype Duration = Duration { durationSeconds :: Integer }
deriving (Eq, Ord, Read, Show)
durationSince :: UTCTime -> IO Duration
durationSince pasttime = do
now <- getCurrentTime
return $ Duration $ round $ diffUTCTime now pasttime
durationToPOSIXTime :: Duration -> POSIXTime
durationToPOSIXTime = fromIntegral . durationSeconds
durationToDays :: Duration -> Integer
durationToDays d = durationSeconds d `div` dsecs
daysToDuration :: Integer -> Duration
daysToDuration i = Duration $ i * dsecs
{- Parses a human-input time duration, of the form "5h", "1m", "5h1m", etc -}
parseDuration :: String -> Maybe Duration
parseDuration = Duration <$$> go 0