Skip to content

Commit e3ebe0e

Browse files
committed
feat: add Plinth summary
1 parent a6d8d30 commit e3ebe0e

File tree

2 files changed

+24
-17
lines changed

2 files changed

+24
-17
lines changed

src/Stan.hs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ module Stan
1111
, runStan
1212
, getAnalysis
1313
, getStanConfig
14+
, removeOffchain
1415

1516
-- ** Internal
1617
, createCabalExtensionsMap
@@ -24,7 +25,7 @@ import Trial (Trial (..), prettyTaggedTrial, prettyTrial, prettyTrialWith, trial
2425
whenResult_)
2526

2627
import Stan.Analysis (Analysis (..), runAnalysis)
27-
import Stan.Analysis.Pretty (prettyShowAnalysis)
28+
import Stan.Analysis.Pretty (prettyShowAnalysis, isPlinthObservation)
2829
import Stan.Browse (openBrowser)
2930
import Stan.Cabal (createCabalExtensionsMap, usedCabalFiles)
3031
import Stan.Cli (CliToTomlArgs (..), InspectionArgs (..), ReportArgs (..), StanArgs (..),
@@ -47,7 +48,6 @@ import Stan.Toml (configCodec, getTomlConfig, usedTomlFiles)
4748
import qualified Toml
4849
import qualified Slist as Slist
4950
import qualified Data.Set as Set
50-
import qualified Data.Text as T
5151
import Language.Haskell.Exts
5252
import Stan.FileInfo (FileInfo(..))
5353

@@ -88,11 +88,6 @@ getAnalysis StanArgs{..} notJson config hieFiles = do
8888
-- show what observations are ignored
8989
pure analysis
9090

91-
isPlutusObservations :: Observation -> Bool
92-
isPlutusObservations Observation{..} =
93-
-- observationInspectionId includes PLU-STAN
94-
"PLU-STAN" `T.isInfixOf` unId observationInspectionId
95-
9691
isOnchainObservations :: Set FilePath -> Observation -> Bool
9792
isOnchainObservations files obs = Set.member (observationFile obs) files
9893

@@ -114,13 +109,14 @@ onchainFiles hieFiles = do
114109
fromList <$> filterM isFileOnchainContract files
115110

116111
onchainCondition :: Set FilePath -> Observation -> Bool
117-
onchainCondition contracts obs = not (isPlutusObservations obs) || isOnchainObservations contracts obs
112+
onchainCondition contracts obs = not (isPlinthObservation obs) || isOnchainObservations contracts obs
118113

119114
filterForOnchain :: Set FilePath -> FileInfo -> FileInfo
120115
filterForOnchain contracts info@FileInfo{..}= info {
121116
fileInfoObservations = Slist.filter (onchainCondition contracts) fileInfoObservations }
122117

123-
removeOffchain :: [HieFile] ->Analysis -> IO Analysis
118+
-- TODO: remove IO and everything will be fine
119+
removeOffchain :: [HieFile] -> Analysis -> IO Analysis
124120
removeOffchain hieFiles analysis = do
125121
contracts <- onchainFiles hieFiles
126122
pure analysis {

src/Stan/Analysis/Pretty.hs

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ module Stan.Analysis.Pretty
1515
, analysisToNumbers
1616
, prettyHealth
1717
, toProjectHealth
18+
, isPlinthObservation
1819
) where
1920

2021
import Colourista.Short (b, i)
@@ -32,6 +33,7 @@ import qualified Data.Map.Strict as Map
3233
import qualified Data.Set as Set
3334
import qualified Data.Text as Text
3435
import qualified Slist as S
36+
import Stan.Core.Id (Id(unId))
3537

3638

3739
{- | Shows analysed output of Stan work.
@@ -51,16 +53,22 @@ prettyShowAnalysis an rs@OutputSettings{..} = case outputSettingsVerbosity of
5153
$ analysisFileMap an
5254

5355
data AnalysisNumbers = AnalysisNumbers
54-
{ anModules :: !Int
55-
, anLoc :: !Int
56-
, anExts :: !Int
57-
, anSafeExts :: !Int
58-
, anIns :: !Int
59-
, anFoundObs :: !Int
60-
, anIgnoredObs :: !Int
61-
, anHealth :: !Double
56+
{ anModules :: !Int
57+
, anLoc :: !Int
58+
, anExts :: !Int
59+
, anSafeExts :: !Int
60+
, anIns :: !Int
61+
, anFoundObs :: !Int
62+
, anIgnoredObs :: !Int
63+
, anFoundPlinth :: !Int
64+
, anHealth :: !Double
6265
}
6366

67+
isPlinthObservation :: Observation -> Bool
68+
isPlinthObservation Observation{..} =
69+
-- observationInspectionId includes PLU-STAN
70+
"PLU-STAN" `Text.isInfixOf` unId observationInspectionId
71+
6472
analysisToNumbers :: Analysis -> AnalysisNumbers
6573
analysisToNumbers Analysis{..} = AnalysisNumbers
6674
{ anModules = analysisModulesNum
@@ -70,6 +78,7 @@ analysisToNumbers Analysis{..} = AnalysisNumbers
7078
, anIns = HS.size analysisInspections
7179
, anFoundObs = length analysisObservations
7280
, anIgnoredObs = length analysisIgnoredObservations
81+
, anFoundPlinth = length (S.filter isPlinthObservation analysisObservations)
7382
, anHealth = calculatedHealth
7483
}
7584
where
@@ -131,6 +140,8 @@ summary AnalysisNumbers{..} = unlines
131140
, mid
132141
, alignText "Total found observations" <> alignNum anFoundObs
133142
, mid
143+
, alignText "Total Plinth observations" <> alignNum anFoundPlinth
144+
, mid
134145
, alignText "Total ignored observations" <> alignNum anIgnoredObs
135146
, mid
136147
, alignText "Project health" <> alignVal (prettyHealth anHealth)

0 commit comments

Comments
 (0)