packages feed

orgstat 0.1.7 → 0.1.8

raw patch · 20 files changed

+65/−70 lines, 20 filesdep ~base

Dependency ranges changed: base

Files

CHANGES.md view
@@ -1,3 +1,7 @@+0.1.8+==========+* Switched to ghc 8.8+ 0.1.7 ========== * Switch "script" output interpreter from "sh" to "/bin/env sh".
orgstat.cabal view
@@ -1,5 +1,5 @@ name:                orgstat-version:             0.1.7+version:             0.1.8 synopsis:            Statistics visualizer for org-mode license:             GPL-3 license-file:        LICENSE@@ -33,7 +33,7 @@   build-depends:       aeson >= 0.11.2.0                      , attoparsec                      , ansi-terminal-                     , base >=4.11 && <4.12+                     , base >=4.13 && <4.14                      , boxes >= 0.1.4                      , bytestring                      , colour >= 2.3.3
src/OrgStat/Ast.hs view
@@ -1,5 +1,4 @@-{-# LANGUAGE RankNTypes      #-}-{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE RankNTypes, TemplateHaskell #-}  -- | Abstract syntax tree for org. @@ -22,7 +21,7 @@        ) where  import Control.Lens (ASetter', makeLenses)-import Data.Time (LocalTime, NominalDiffTime, diffUTCTime, localTimeToUTC, localTimeToUTC, utc)+import Data.Time (LocalTime, NominalDiffTime, diffUTCTime, localTimeToUTC, utc)  import Universum 
src/OrgStat/Config.hs view
@@ -1,6 +1,4 @@-{-# LANGUAGE RecordWildCards  #-}-{-# LANGUAGE TemplateHaskell  #-}-{-# LANGUAGE TypeApplications #-}+{-# LANGUAGE RecordWildCards, TemplateHaskell, TypeApplications #-} {-# OPTIONS_GHC -Wno-orphans #-}  -- | Configuration file types, together with json instances.@@ -16,17 +14,16 @@        , OrgStatConfig (..)        ) where -import Data.Aeson (FromJSON (..), Value (Object, String), withObject, withText, (.!=), (.:), (.:?))+import Data.Aeson (FromJSON(..), Value(Object, String), withObject, withText, (.!=), (.:), (.:?)) import Data.Aeson.Types (typeMismatch)-import Data.List.NonEmpty (NonEmpty) import qualified Data.Text as T import Data.Time (LocalTime) import Data.Time.Format (defaultTimeLocale, parseTimeM) import Universum -import OrgStat.Outputs.Types (BlockParams (..), ScriptParams (..), SummaryParams (..),-                              TimelineParams (..))-import OrgStat.Scope (AstPath (..), ScopeModifier (..))+import OrgStat.Outputs.Types+  (BlockParams(..), ScriptParams(..), SummaryParams(..), TimelineParams(..))+import OrgStat.Scope (AstPath(..), ScopeModifier(..)) import OrgStat.Util (parseColour)  -- | Exception type for everything bad that happens with config,
src/OrgStat/Helpers.hs view
@@ -12,14 +12,15 @@  import Control.Lens (at, views, (.=)) import qualified Data.List.NonEmpty as NE-import Data.Time (LocalTime (..), TimeOfDay (..), addDays, getZonedTime, toGregorian,-                  zonedTimeToLocalTime)+import Data.Time+  (LocalTime(..), TimeOfDay(..), addDays, getZonedTime, toGregorian, zonedTimeToLocalTime) import Data.Time.Calendar (addGregorianMonthsRollOver) import Data.Time.Calendar.WeekDate (toWeekDate) -import OrgStat.Ast (Org (..), cutFromTo, mergeClocks, orgTitle)-import OrgStat.Config (ConfDate (..), ConfOutput (..), ConfRange (..), ConfReport (..),-                       ConfScope (..), ConfigException (..), OrgStatConfig (..))+import OrgStat.Ast (Org(..), cutFromTo, mergeClocks, orgTitle)+import OrgStat.Config+  (ConfDate(..), ConfOutput(..), ConfRange(..), ConfReport(..), ConfScope(..), ConfigException(..),+  OrgStatConfig(..)) import OrgStat.IO (readOrgFile) import OrgStat.Scope (applyModifiers) import OrgStat.WorkMonad (WorkM, wcConfig, wdReadFiles, wdResolvedReports, wdResolvedScopes)
src/OrgStat/IO.hs view
@@ -16,10 +16,10 @@ import Data.Yaml (decodeEither') import System.Directory (doesFileExist) import System.FilePath (takeBaseName, takeExtension)-import Turtle (ExitCode (..), procStrict)+import Turtle (ExitCode(..), procStrict)  import OrgStat.Ast (Org)-import OrgStat.Config (ConfigException (ConfigParseException), OrgStatConfig)+import OrgStat.Config (ConfigException(ConfigParseException), OrgStatConfig) import OrgStat.Logging import OrgStat.Parser (runParser) import OrgStat.Util (dropEnd)
src/OrgStat/Logging.hs view
@@ -18,11 +18,12 @@  import Control.Concurrent.MVar (modifyMVar_, withMVar) import qualified Data.Text as T-import Data.Time.Clock (UTCTime (..), getCurrentTime)+import Data.Time.Clock (UTCTime(..), getCurrentTime) import Fmt (fmt, padRightF, (+|), (|+), (|++|)) import Fmt.Time (dateDashF, hmsF, subsecondF, tzNameF)-import System.Console.ANSI (Color (Blue, Green, Magenta, Red, Yellow), ColorIntensity (Vivid),-                            ConsoleLayer (Foreground), SGR (Reset, SetColor), setSGRCode)+import System.Console.ANSI+  (Color(Blue, Green, Magenta, Red, Yellow), ColorIntensity(Vivid), ConsoleLayer(Foreground),+  SGR(Reset, SetColor), setSGRCode) import System.IO.Unsafe (unsafePerformIO)  
src/OrgStat/Logic.hs view
@@ -15,12 +15,12 @@ import System.FilePath ((</>)) import Turtle (shell) -import OrgStat.CLI (CommonArgs (..))-import OrgStat.Config (ConfOutput (..), ConfOutputType (..), OrgStatConfig (..))+import OrgStat.CLI (CommonArgs(..))+import OrgStat.Config (ConfOutput(..), ConfOutputType(..), OrgStatConfig(..)) import OrgStat.Helpers (resolveOutput, resolveReport) import OrgStat.Logging (logDebug, logInfo)-import OrgStat.Outputs (genBlockOutput, genSummaryOutput, processScriptOutput, processTimeline,-                        writeReport)+import OrgStat.Outputs+  (genBlockOutput, genSummaryOutput, processScriptOutput, processTimeline, writeReport) import OrgStat.WorkMonad (WorkM, wcCommonArgs, wcConfig)  -- | Main application logic.
src/OrgStat/Outputs/Block.hs view
@@ -12,7 +12,7 @@ import Text.PrettyPrint.Boxes (center1, hsep, left, render, right, text, vcat)  import OrgStat.Ast (Org, filterHasClock, orgSubtrees, orgTitle, orgTotalDuration)-import OrgStat.Outputs.Types (BlockOutput (..), BlockParams (..))+import OrgStat.Outputs.Types (BlockOutput(..), BlockParams(..)) import OrgStat.Util (dropEnd, timeF)  data BlockFrames = BlockFrames
src/OrgStat/Outputs/Class.hs view
@@ -11,7 +11,7 @@ import qualified Diagrams.Prelude as D import System.FilePath (replaceExtension) -import OrgStat.Outputs.Types (BlockOutput (..), SummaryOutput (..), TimelineOutput (..))+import OrgStat.Outputs.Types (BlockOutput(..), SummaryOutput(..), TimelineOutput(..))  -- | Things that reporters output an what we can do with them. class ReportOutput a where
src/OrgStat/Outputs/Script.hs view
@@ -16,7 +16,7 @@ import OrgStat.Config (confReports, crName) import OrgStat.Helpers (resolveReport) import OrgStat.Logging-import OrgStat.Outputs.Types (ScriptParams (..))+import OrgStat.Outputs.Types (ScriptParams(..)) import OrgStat.Util (timeF) import OrgStat.WorkMonad (WorkM, wcConfig) 
src/OrgStat/Outputs/Summary.hs view
@@ -12,7 +12,7 @@ import OrgStat.Ast (filterHasClock, orgTotalDuration) import OrgStat.Config (confReports, crName) import OrgStat.Helpers (resolveReport)-import OrgStat.Outputs.Types (SummaryOutput (..), SummaryParams (..))+import OrgStat.Outputs.Types (SummaryOutput(..), SummaryParams(..)) import OrgStat.Util (timeF) import OrgStat.WorkMonad (WorkM, wcConfig) 
src/OrgStat/Outputs/Timeline.hs view
@@ -1,6 +1,4 @@-{-# LANGUAGE RankNTypes          #-}-{-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE TemplateHaskell     #-}+{-# LANGUAGE RankNTypes, ScopedTypeVariables, TemplateHaskell #-}  -- | Timeline reporting output. Prouces a svg with columns. @@ -11,16 +9,17 @@ import Data.Colour.CIE (luminance) import Data.List (lookup, nub) import qualified Data.Text as T-import Data.Time (Day, DiffTime, LocalTime (..), defaultTimeLocale, formatTime, timeOfDayToTime)+import Data.Time (Day, DiffTime, LocalTime(..), defaultTimeLocale, formatTime, timeOfDayToTime) import Diagrams.Backend.SVG (B) import qualified Diagrams.Prelude as D import qualified Prelude import Text.Printf (printf) import Universum -import OrgStat.Ast (Clock (..), Org (..), orgClocks, traverseTree)-import OrgStat.Outputs.Types (TimelineOutput (..), TimelineParams, tpBackground, tpColorSalt,-                              tpColumnHeight, tpColumnWidth, tpLegend, tpTopDay)+import OrgStat.Ast (Clock(..), Org(..), orgClocks, traverseTree)+import OrgStat.Outputs.Types+  (TimelineOutput(..), TimelineParams, tpBackground, tpColorSalt, tpColumnHeight, tpColumnWidth,+  tpLegend, tpTopDay) import OrgStat.Util (addLocalTime, hashColour)  
src/OrgStat/Outputs/Types.hs view
@@ -1,5 +1,4 @@-{-# LANGUAGE RankNTypes      #-}-{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE RankNTypes, TemplateHaskell #-} -- | Types common among reports.  module OrgStat.Outputs.Types@@ -23,13 +22,13 @@        , BlockOutput (..)        ) where -import           Universum+import Universum -import           Control.Lens         (makeLenses)+import Control.Lens (makeLenses) -import           Data.Default         (Default (..))-import           Diagrams.Backend.SVG (B)-import qualified Diagrams.Prelude     as D+import Data.Default (Default(..))+import Diagrams.Backend.SVG (B)+import qualified Diagrams.Prelude as D  ---------------------------------------------------------------------------- -- Timeline
src/OrgStat/Parser.hs view
@@ -8,23 +8,21 @@  import Universum -import Control.Exception (Exception) import qualified Data.Attoparsec.Text as A import Data.Char (isSpace) import qualified Data.OrgMode.Parse as O import qualified Data.OrgMode.Types as O import qualified Data.Text as T-import Data.Time (LocalTime (..), TimeOfDay (..), fromGregorian, getZonedTime, zonedTimeToLocalTime)+import Data.Time (LocalTime(..), TimeOfDay(..), fromGregorian, getZonedTime, zonedTimeToLocalTime) import Data.Time.Calendar () -import OrgStat.Ast (Clock (..), Org (..), orgTags, traverseTree)+import OrgStat.Ast (Clock(..), Org(..), orgTags, traverseTree)  ---------------------------------------------------------------------------- -- Exceptions ---------------------------------------------------------------------------- -data ParsingException =-    ParsingException Text+data ParsingException = ParsingException Text     deriving (Show, Typeable)  instance Exception ParsingException
src/OrgStat/Scope.hs view
@@ -1,7 +1,4 @@-{-# LANGUAGE DeriveGeneric       #-}-{-# LANGUAGE RankNTypes          #-}-{-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE TemplateHaskell     #-}+{-# LANGUAGE DeriveGeneric, RankNTypes, ScopedTypeVariables, TemplateHaskell #-}  -- | This module defines how report input is formed. 
src/OrgStat/Util.hs view
@@ -18,11 +18,10 @@ import Data.Char (isLower, toLower) import Data.Colour (Colour) import Data.Colour.CIE (luminance)-import Data.Colour.SRGB (RGB (..), sRGB24, toSRGBBounded)-import Data.Hashable (hashWithSalt)+import Data.Colour.SRGB (RGB(..), sRGB24, toSRGBBounded) import Data.List (nub) import Data.List ((!!))-import Data.Time (LocalTime (..), NominalDiffTime, addUTCTime, localTimeToUTC, utc, utcToLocalTime)+import Data.Time (LocalTime(..), NominalDiffTime, addUTCTime, localTimeToUTC, utc, utcToLocalTime) import Universum  -- | JSON/Yaml TH modifier. Each field of type "aoeuKek" turns into
src/OrgStat/WorkMonad.hs view
@@ -17,7 +17,7 @@ import Universum  import Control.Lens (makeLenses)-import Data.Default (Default (def))+import Data.Default (Default(def))  import OrgStat.Ast (Org) import OrgStat.CLI (CommonArgs)
src/cli/Main.hs view
@@ -1,22 +1,21 @@-{-# LANGUAGE ApplicativeDo       #-}-{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE ApplicativeDo, ScopedTypeVariables #-}  module Main where  import Universum  import Data.Version (showVersion)-import Options.Applicative.Simple (Parser, help, long, metavar, simpleOptions, strOption, switch,-                                   value)+import Options.Applicative.Simple+  (Parser, help, long, metavar, simpleOptions, strOption, switch, value) import Paths_orgstat (version) import System.Directory (getHomeDirectory) import System.FilePath ((</>))  import OrgStat.CLI (CommonArgs, parseCommonArgs) import OrgStat.IO (readConfig)-import OrgStat.Logging (Severity (..), initLogging, logDebug, logError)+import OrgStat.Logging (Severity(..), initLogging, logDebug, logError) import OrgStat.Logic (runOrgStat)-import OrgStat.WorkMonad (WorkConfig (..), runWorkM)+import OrgStat.WorkMonad (WorkConfig(..), runWorkM)  data Args = Args     { configPath :: !FilePath
test/GlobalSpec.hs view
@@ -7,16 +7,17 @@ import qualified Data.List as L import qualified Data.Text as T import Data.Text.Arbitrary ()-import Data.Time (LocalTime (..), TimeOfDay (..), getZonedTime, zonedTimeToLocalTime)+import Data.Time (LocalTime(..), TimeOfDay(..), getZonedTime, zonedTimeToLocalTime) import Data.Time.Calendar (addGregorianMonthsClip, fromGregorian) import Test.Hspec (Spec, describe, runIO) import Test.Hspec.QuickCheck (prop)-import Test.QuickCheck (Arbitrary (arbitrary), Gen, NonNegative (..), Positive (..), Small (..),-                        choose, forAll, ioProperty, oneof, (.&&.), (===), (==>))+import Test.QuickCheck+  (Arbitrary(arbitrary), Gen, NonNegative(..), Positive(..), Small(..), choose, forAll, ioProperty,+  oneof, (.&&.), (===), (==>)) import Universum -import OrgStat.Ast (Clock (..), Org (..), atDepth, mergeClocks, orgClocks)-import OrgStat.Config (ConfDate (..), ConfRange (..))+import OrgStat.Ast (Clock(..), Org(..), atDepth, mergeClocks, orgClocks)+import OrgStat.Config (ConfDate(..), ConfRange(..)) import OrgStat.Helpers (convertRange) import OrgStat.Util (addLocalTime, parseColour) @@ -43,7 +44,8 @@  instance Arbitrary Clock where     arbitrary = do-        [a,b] <- replicateM 2 arbitrary+        a <- arbitrary+        b <- arbitrary         pure . (uncurry Clock) $ if a < b then (a,b) else (b,a)  genOrgDepth :: Int -> Gen Org