packages feed

devtools 0.0.3 → 0.1.0

raw patch · 6 files changed

+80/−59 lines, 6 filesdep ~base

Dependency ranges changed: base

Files

− app/Main.hs
@@ -1,8 +0,0 @@-module Main (main) where--import System.IO (IO)--import qualified Devtools--main :: IO ()-main = Devtools.main Devtools.defaultConfig
devtools.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 10ba25189f0663169075ea8771f091d9af0ff814b260061a20374044460019e2+-- hash: 1ab3f83c389cae0745d3d2ddb4de502d0a96c2d0b770b4c1a5a5f1ac1dcbd7a1  name:           devtools-version:        0.0.3+version:        0.1.0 synopsis:       Haskell development tool agregate description:    An attempt to group development that would typically run on CI / local                 into one tasty interface.@@ -34,6 +34,7 @@ library   exposed-modules:       Devtools+      Devtools.Config       Devtools.Dependencies       Devtools.HLint       Devtools.Prelude@@ -45,7 +46,7 @@   ghc-options: -Wall -Wcompat -Widentities -Wimplicit-prelude -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-exported-signatures -Wmissing-local-signatures -Wmonomorphism-restriction -Wredundant-constraints -fplugin=SourceConstraints -funbox-strict-fields -optP-Wno-nonportable-include-path   build-depends:       Diff >0.3 && <0.5-    , base >4.12 && <4.14+    , base >4.12 && <4.15     , bytestring >=0.10 && <0.11     , cmdargs >=0.10.20 && <0.11     , filepath >=1.4 && <1.5@@ -62,42 +63,16 @@     ghc-options: -Wwarn   default-language: Haskell2010 -executable devtools-  main-is: app/Main.hs-  other-modules:-      Paths_devtools-  default-extensions: DerivingStrategies LambdaCase NoImplicitPrelude OverloadedStrings RecordWildCards StrictData-  ghc-options: -Wall -Wcompat -Widentities -Wimplicit-prelude -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-exported-signatures -Wmissing-local-signatures -Wmonomorphism-restriction -Wredundant-constraints -fplugin=SourceConstraints -funbox-strict-fields -optP-Wno-nonportable-include-path -rtsopts -threaded -with-rtsopts=-N-  build-depends:-      Diff >0.3 && <0.5-    , base >4.12 && <4.14-    , bytestring >=0.10 && <0.11-    , cmdargs >=0.10.20 && <0.11-    , devtools-    , filepath >=1.4 && <1.5-    , hlint >3.1 && <4-    , mprelude >=0.2.0 && <0.3-    , source-constraints >=0.0.1 && <0.1-    , tasty >=1.3.1 && <1.4-    , tasty-mgolden >=0.0.1 && <0.1-    , text >=1.2 && <1.3-    , typed-process >=0.2 && <0.3-  if flag(development)-    ghc-options: -Werror-  else-    ghc-options: -Wwarn-  default-language: Haskell2010--test-suite devtools-test+test-suite test   type: exitcode-stdio-1.0-  main-is: app/Main.hs+  main-is: test/Test.hs   other-modules:       Paths_devtools   default-extensions: DerivingStrategies LambdaCase NoImplicitPrelude OverloadedStrings RecordWildCards StrictData   ghc-options: -Wall -Wcompat -Widentities -Wimplicit-prelude -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-exported-signatures -Wmissing-local-signatures -Wmonomorphism-restriction -Wredundant-constraints -fplugin=SourceConstraints -funbox-strict-fields -optP-Wno-nonportable-include-path -rtsopts -threaded -with-rtsopts=-N   build-depends:       Diff >0.3 && <0.5-    , base >4.12 && <4.14+    , base >4.12 && <4.15     , bytestring >=0.10 && <0.11     , cmdargs >=0.10.20 && <0.11     , devtools
src/Devtools.hs view
@@ -1,5 +1,14 @@-module Devtools (Config(..), defaultConfig, defaultMain, main, testTree) where+module Devtools+  ( Config(..)+  , Target(..)+  , defaultConfig+  , defaultMain+  , main+  , testTree+  )+where +import Devtools.Config import Devtools.Prelude import System.IO (putStrLn) @@ -7,13 +16,10 @@ import qualified Devtools.HLint        as HLint import qualified Test.Tasty            as Tasty -newtype Config = Config-  { hlintArguments :: [String]-  }- defaultConfig :: Config defaultConfig = Config   { hlintArguments = []+  , targets        = []   }  defaultMain :: IO ()@@ -22,10 +28,14 @@ main :: Config -> IO () main config = do   putStrLn empty-  Tasty.defaultMain $ testTree config+  Tasty.defaultMain =<< testTree config -testTree :: Config -> Tasty.TestTree-testTree Config{..} = Tasty.testGroup "devtools"-  [ Dependencies.testTree-  , HLint.testTree hlintArguments-  ]+testTree :: Config -> IO Tasty.TestTree+testTree Config{..} = do+  filename <- Dependencies.getFilename++  pure $ Tasty.testGroup+    "devtools"+    [ Dependencies.testTree filename targets+    , HLint.testTree hlintArguments+    ]
+ src/Devtools/Config.hs view
@@ -0,0 +1,15 @@+module Devtools.Config where++import Devtools.Prelude++import qualified Data.Text as Text++newtype Target = Target Text++targetString :: Target -> String+targetString (Target text) = Text.unpack text++data Config = Config+  { hlintArguments :: [String]+  , targets        :: [Target]+  }
src/Devtools/Dependencies.hs view
@@ -1,20 +1,25 @@-module Devtools.Dependencies (testTree) where+module Devtools.Dependencies+  ( getFilename+  , testTree+  )+where  import Data.Tuple (fst)+import Devtools.Config import Devtools.Prelude+import System.FilePath (FilePath, (</>))  import qualified Data.ByteString.Lazy  as LBS import qualified Data.Text.Encoding    as Text+import qualified System.Environment    as Environment+import qualified System.FilePath       as FilePath import qualified System.Process.Typed  as Process import qualified Test.Tasty            as Tasty import qualified Test.Tasty.MGolden    as Tasty -testTree :: Tasty.TestTree-testTree =-  Tasty.goldenTest-    "dependencies"-    "test/stack-dependencies.txt"-    readDependenciesText+testTree :: FilePath -> [Target] -> Tasty.TestTree+testTree filename targets =+  Tasty.goldenTest "dependencies" filename readDependenciesText   where     readDependenciesText :: IO Text     readDependenciesText@@ -22,4 +27,20 @@      readDependencies :: IO LBS.ByteString     readDependencies-      = fst <$> Process.readProcess_ (Process.proc "stack" ["ls", "dependencies", "--test"])+      = fst <$> Process.readProcess_ (Process.proc "stack" arguments)++    arguments :: [String]+    arguments =+      [ "ls"+      , "dependencies"+      , "--test"+      ] <> (targetString <$> targets)++getFilename :: IO FilePath+getFilename = do+  prefix <- getPrefix+  pure $ "test" </> prefix <> "-dependencies.txt"+  where+    getPrefix+      =   maybe "stack" (FilePath.dropExtension . FilePath.takeFileName)+      <$> Environment.lookupEnv "STACK_YAML"
+ test/Test.hs view
@@ -0,0 +1,8 @@+module Main (main) where++import System.IO (IO)++import qualified Devtools++main :: IO ()+main = Devtools.main Devtools.defaultConfig