@@ -4,13 +4,76 @@ import Spago.Prelude
44
55import ArgParse.Basic (ArgParser )
66import ArgParse.Basic as ArgParser
7+ import Data.Set.NonEmpty (NonEmptySet )
8+ import Data.Set.NonEmpty as NonEmptySet
9+ import Spago.Core.Config (ShowSourceCode (..))
10+ import Spago.Core.Config as Core
711
812selectedPackage ∷ ArgParser (Maybe String )
913selectedPackage =
1014 ArgParser .argument [ " --package" , " -p" ]
1115 " Select the local project to build"
1216 # ArgParser .optional
1317
18+ strict ∷ ArgParser (Maybe Boolean )
19+ strict =
20+ ArgParser .flag [ " --strict" ]
21+ " Promotes project sources' warnings to errors"
22+ # ArgParser .boolean
23+ # ArgParser .optional
24+
25+ censorBuildWarnings ∷ ArgParser (Maybe Core.CensorBuildWarnings )
26+ censorBuildWarnings =
27+ ArgParser .argument [ " --censor-build-warnings" ]
28+ " Censor compiler warnings based on file's location: 'dependency', 'project', or 'all'"
29+ # ArgParser .unformat " ARG"
30+ ( case _ of
31+ " all" -> Right Core.CensorAllWarnings
32+ " project" -> Right Core.CensorProjectWarnings
33+ " dependency" -> Right Core.CensorDependencyWarnings
34+ _ -> Left $ " Expected 'all', 'project', or 'dependency'"
35+ )
36+ # ArgParser .optional
37+
38+ showSource ∷ ArgParser (Maybe ShowSourceCode )
39+ showSource =
40+ NoSourceCode
41+ <$ ArgParser .flag [ " --no-source" ]
42+ " Disable original source code printing"
43+ # ArgParser .optional
44+
45+ censorCodes :: ArgParser (Maybe (NonEmptySet String ))
46+ censorCodes =
47+ ArgParser .argument [ " --censor-code" ]
48+ " Censor a specific error code (e.g. `ShadowedName`)"
49+ # ArgParser .many
50+ <#> NonEmptySet .fromFoldable
51+
52+ filterCodes :: ArgParser (Maybe (NonEmptySet String ))
53+ filterCodes =
54+ ArgParser .argument [ " --filter-code" ]
55+ " Only show a specific error code (e.g. `TypesDoNotUnify`)"
56+ # ArgParser .many
57+ <#> NonEmptySet .fromFoldable
58+
59+ statVerbosity :: ArgParser (Maybe Core.StatVerbosity )
60+ statVerbosity = ArgParser .optional $ ArgParser .choose " StatVerbosity"
61+ [ Core.VerboseStats <$ ArgParser .flag [ " --verbose-stats" ] " Show counts for each warning type"
62+ , Core.NoStats <$ ArgParser .flag [ " --censor-stats" ] " Censor warning/error summary"
63+ ]
64+
65+ persistWarnings ∷ ArgParser (Maybe Boolean )
66+ persistWarnings =
67+ ArgParser .flag [ " --persist-warnings" ] " Persist the compiler warnings between multiple underlying `purs compile` calls"
68+ # ArgParser .boolean
69+ # ArgParser .optional
70+
71+ jsonErrors ∷ ArgParser Boolean
72+ jsonErrors =
73+ ArgParser .flag [ " --json-errors" ]
74+ " Output compiler warnings/errors as JSON"
75+ # ArgParser .boolean
76+
1477minify ∷ ArgParser Boolean
1578minify =
1679 ArgParser .flag [ " --minify" ]
@@ -63,7 +126,7 @@ verbose =
63126
64127noColor ∷ ArgParser Boolean
65128noColor =
66- ArgParser .flag [ " --no-color" ]
129+ ArgParser .flag [ " --no-color" , " --monochrome " ]
67130 " Force logging without ANSI color escape sequences"
68131 # ArgParser .boolean
69132 # ArgParser .default false
@@ -92,7 +155,7 @@ pedanticPackages =
92155pursArgs ∷ ArgParser (List String )
93156pursArgs =
94157 ArgParser .argument [ " --purs-args" ]
95- " Arguments to pass to purs compile. Wrap in quotes."
158+ " Arguments to pass to purs compile. Wrap in quotes. `--output` and `--json-errors` must be passed to Spago directly. "
96159 # ArgParser .many
97160
98161execArgs :: ArgParser (Maybe (Array String ))
0 commit comments