@@ -142,26 +142,8 @@ let printKnownCliArgs () =
142
142
| desc :: extraLines -> [ $" %-18s {args}{desc}" ; yield ! extraLines |> List.map ( sprintf " %20s%s " " " ) ]
143
143
)
144
144
145
- let sanitizeCliArgs ( args : CliArgs ) =
146
- let knownCliArgs =
147
- knownCliArgs () |> List.collect fst |> List.map ( fun a -> a.ToLower()) |> set
148
-
149
- ( Ok args, args.LoweredKeys)
150
- ||> List.fold ( fun res arg ->
151
- match res with
152
- | Error msg -> Error msg
153
- | Ok args ->
154
- if knownCliArgs.Contains( arg) then
155
- Ok args
156
- else
157
- Error $" Unknown argument: {arg}"
158
- )
159
-
160
- let parseCliArgs ( args : string list ) = CliArgs( args) |> sanitizeCliArgs
161
-
162
- let printHelp () =
163
- Log.always
164
- $""" Usage: fable [watch] [.fsproj file or dir path] [arguments]
145
+ let generateHelp () =
146
+ $""" Usage: fable [watch] [.fsproj file or dir path] [arguments]
165
147
166
148
Commands:
167
149
-h|--help Show help
@@ -179,6 +161,31 @@ Arguments:
179
161
Docker mounted volumes, and other virtual file systems.
180
162
"""
181
163
164
+ let generateHelpWithPrefix prefixText =
165
+ $""" %s {prefixText}
166
+
167
+ %s {generateHelp ()}
168
+ """
169
+
170
+ let printHelp () = generateHelp () |> Log.always
171
+
172
+ let sanitizeCliArgs ( args : CliArgs ) =
173
+ let knownCliArgs =
174
+ knownCliArgs () |> List.collect fst |> List.map ( fun a -> a.ToLower()) |> set
175
+
176
+ ( Ok args, args.LoweredKeys)
177
+ ||> List.fold ( fun res arg ->
178
+ match res with
179
+ | Error msg -> Error msg
180
+ | Ok args ->
181
+ if knownCliArgs.Contains( arg) then
182
+ Ok args
183
+ else
184
+ $" Unknown argument: {arg}" |> generateHelpWithPrefix |> Error
185
+ )
186
+
187
+ let parseCliArgs ( args : string list ) = CliArgs( args) |> sanitizeCliArgs
188
+
182
189
let argLanguage ( args : CliArgs ) =
183
190
args.Value( " --lang" , " --language" )
184
191
|> Option.map ( fun lang ->
@@ -582,11 +589,10 @@ let main argv =
582
589
watch = args.FlagEnabled( " --watch" )
583
590
)
584
591
| [] -> return ! Runner.Run( args, language, rootDir, runProc, verbosity, watch = args.FlagEnabled( " --watch" ))
585
- | _ -> return ! Error " Unexpected arguments. Use `fable --help` to see available options. "
592
+ | _ -> return ! " Unexpected arguments" |> generateHelpWithPrefix |> Error
586
593
}
587
594
|> function
588
595
| Ok _ -> 0
589
596
| Error msg ->
590
597
Log.error msg
591
- printHelp ()
592
598
1
0 commit comments