diff --git a/CHANGELOG.md b/CHANGELOG.md
index fa83149..3255beb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
Notable changes are recorded here.
+# WoofWare.Myriad.Plugins 6.0.1
+
+The `ArgParser` generator's type signatures have changed.
+The `parse'` method no longer takes `getEnvironmentVariable : string -> string`; it's now `getEnvironmentVariable : string -> string option`.
+This is to permit satisfying the `enable` compiler setting.
+If you're calling `parse'`, give it `Environment.GetEnvironmentVariable >> Option.ofObj` instead.
+
# WoofWare.Myriad.Plugins 5.0.1
We now enforce non-nullability on more types during JSON parse.
diff --git a/ConsumePlugin/GeneratedArgs.fs b/ConsumePlugin/GeneratedArgs.fs
index 7a0752f..4114cd8 100644
--- a/ConsumePlugin/GeneratedArgs.fs
+++ b/ConsumePlugin/GeneratedArgs.fs
@@ -23,7 +23,7 @@ module BasicNoPositionals =
/// Waiting to receive a value for the key we've already consumed
| AwaitingValue of key : string
- let parse' (getEnvironmentVariable : string -> string) (args : string list) : BasicNoPositionals =
+ let parse' (getEnvironmentVariable : string -> string option) (args : string list) : BasicNoPositionals =
let ArgParser_errors = ResizeArray ()
let helpText () =
@@ -223,7 +223,7 @@ module BasicNoPositionals =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
let parse (args : string list) : BasicNoPositionals =
- parse' System.Environment.GetEnvironmentVariable args
+ parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -239,7 +239,7 @@ module Basic =
/// Waiting to receive a value for the key we've already consumed
| AwaitingValue of key : string
- let parse' (getEnvironmentVariable : string -> string) (args : string list) : Basic =
+ let parse' (getEnvironmentVariable : string -> string option) (args : string list) : Basic =
let ArgParser_errors = ResizeArray ()
let helpText () =
@@ -430,7 +430,7 @@ module Basic =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
let parse (args : string list) : Basic =
- parse' System.Environment.GetEnvironmentVariable args
+ parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -446,7 +446,7 @@ module BasicWithIntPositionals =
/// Waiting to receive a value for the key we've already consumed
| AwaitingValue of key : string
- let parse' (getEnvironmentVariable : string -> string) (args : string list) : BasicWithIntPositionals =
+ let parse' (getEnvironmentVariable : string -> string option) (args : string list) : BasicWithIntPositionals =
let ArgParser_errors = ResizeArray ()
let helpText () =
@@ -633,7 +633,7 @@ module BasicWithIntPositionals =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
let parse (args : string list) : BasicWithIntPositionals =
- parse' System.Environment.GetEnvironmentVariable args
+ parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -649,7 +649,7 @@ module LoadsOfTypes =
/// Waiting to receive a value for the key we've already consumed
| AwaitingValue of key : string
- let parse' (getEnvironmentVariable : string -> string) (args : string list) : LoadsOfTypes =
+ let parse' (getEnvironmentVariable : string -> string option) (args : string list) : LoadsOfTypes =
let ArgParser_errors = ResizeArray ()
let helpText () =
@@ -1038,7 +1038,7 @@ module LoadsOfTypes =
match arg_10 with
| None ->
match "CONSUMEPLUGIN_THINGS" |> getEnvironmentVariable with
- | null ->
+ | None ->
sprintf
"No value was supplied for %s, nor was environment variable %s set"
(sprintf "--%s" "yet-another-optional-thing")
@@ -1046,7 +1046,7 @@ module LoadsOfTypes =
|> ArgParser_errors.Add
Unchecked.defaultof<_>
- | x -> x |> (fun x -> x)
+ | Some x -> x |> (fun x -> x)
|> Choice2Of2
| Some x -> Choice1Of2 x
@@ -1068,7 +1068,7 @@ module LoadsOfTypes =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
let parse (args : string list) : LoadsOfTypes =
- parse' System.Environment.GetEnvironmentVariable args
+ parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -1084,7 +1084,7 @@ module LoadsOfTypesNoPositionals =
/// Waiting to receive a value for the key we've already consumed
| AwaitingValue of key : string
- let parse' (getEnvironmentVariable : string -> string) (args : string list) : LoadsOfTypesNoPositionals =
+ let parse' (getEnvironmentVariable : string -> string option) (args : string list) : LoadsOfTypesNoPositionals =
let ArgParser_errors = ResizeArray ()
let helpText () =
@@ -1476,7 +1476,7 @@ module LoadsOfTypesNoPositionals =
match arg_9 with
| None ->
match "CONSUMEPLUGIN_THINGS" |> getEnvironmentVariable with
- | null ->
+ | None ->
sprintf
"No value was supplied for %s, nor was environment variable %s set"
(sprintf "--%s" "yet-another-optional-thing")
@@ -1484,7 +1484,7 @@ module LoadsOfTypesNoPositionals =
|> ArgParser_errors.Add
Unchecked.defaultof<_>
- | x -> x |> (fun x -> x)
+ | Some x -> x |> (fun x -> x)
|> Choice2Of2
| Some x -> Choice1Of2 x
@@ -1505,7 +1505,7 @@ module LoadsOfTypesNoPositionals =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
let parse (args : string list) : LoadsOfTypesNoPositionals =
- parse' System.Environment.GetEnvironmentVariable args
+ parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -1524,7 +1524,7 @@ module DatesAndTimesArgParse =
/// Extension methods for argument parsing
type DatesAndTimes with
- static member parse' (getEnvironmentVariable : string -> string) (args : string list) : DatesAndTimes =
+ static member parse' (getEnvironmentVariable : string -> string option) (args : string list) : DatesAndTimes =
let ArgParser_errors = ResizeArray ()
let helpText () =
@@ -1787,7 +1787,7 @@ module DatesAndTimesArgParse =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
static member parse (args : string list) : DatesAndTimes =
- DatesAndTimes.parse' System.Environment.GetEnvironmentVariable args
+ DatesAndTimes.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -1806,7 +1806,7 @@ module ParentRecordArgParse =
/// Extension methods for argument parsing
type ParentRecord with
- static member parse' (getEnvironmentVariable : string -> string) (args : string list) : ParentRecord =
+ static member parse' (getEnvironmentVariable : string -> string option) (args : string list) : ParentRecord =
let ArgParser_errors = ResizeArray ()
let helpText () =
@@ -2016,7 +2016,7 @@ module ParentRecordArgParse =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
static member parse (args : string list) : ParentRecord =
- ParentRecord.parse' System.Environment.GetEnvironmentVariable args
+ ParentRecord.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -2035,7 +2035,11 @@ module ParentRecordChildPosArgParse =
/// Extension methods for argument parsing
type ParentRecordChildPos with
- static member parse' (getEnvironmentVariable : string -> string) (args : string list) : ParentRecordChildPos =
+ static member parse'
+ (getEnvironmentVariable : string -> string option)
+ (args : string list)
+ : ParentRecordChildPos
+ =
let ArgParser_errors = ResizeArray ()
let helpText () =
@@ -2209,7 +2213,7 @@ module ParentRecordChildPosArgParse =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
static member parse (args : string list) : ParentRecordChildPos =
- ParentRecordChildPos.parse' System.Environment.GetEnvironmentVariable args
+ ParentRecordChildPos.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -2228,7 +2232,11 @@ module ParentRecordSelfPosArgParse =
/// Extension methods for argument parsing
type ParentRecordSelfPos with
- static member parse' (getEnvironmentVariable : string -> string) (args : string list) : ParentRecordSelfPos =
+ static member parse'
+ (getEnvironmentVariable : string -> string option)
+ (args : string list)
+ : ParentRecordSelfPos
+ =
let ArgParser_errors = ResizeArray ()
let helpText () =
@@ -2388,7 +2396,7 @@ module ParentRecordSelfPosArgParse =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
static member parse (args : string list) : ParentRecordSelfPos =
- ParentRecordSelfPos.parse' System.Environment.GetEnvironmentVariable args
+ ParentRecordSelfPos.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -2407,7 +2415,11 @@ module ChoicePositionalsArgParse =
/// Extension methods for argument parsing
type ChoicePositionals with
- static member parse' (getEnvironmentVariable : string -> string) (args : string list) : ChoicePositionals =
+ static member parse'
+ (getEnvironmentVariable : string -> string option)
+ (args : string list)
+ : ChoicePositionals
+ =
let ArgParser_errors = ResizeArray ()
let helpText () =
@@ -2502,7 +2514,7 @@ module ChoicePositionalsArgParse =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
static member parse (args : string list) : ChoicePositionals =
- ChoicePositionals.parse' System.Environment.GetEnvironmentVariable args
+ ChoicePositionals.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -2521,7 +2533,11 @@ module ContainsBoolEnvVarArgParse =
/// Extension methods for argument parsing
type ContainsBoolEnvVar with
- static member parse' (getEnvironmentVariable : string -> string) (args : string list) : ContainsBoolEnvVar =
+ static member parse'
+ (getEnvironmentVariable : string -> string option)
+ (args : string list)
+ : ContainsBoolEnvVar
+ =
let ArgParser_errors = ResizeArray ()
let helpText () =
@@ -2653,7 +2669,7 @@ module ContainsBoolEnvVarArgParse =
match arg_0 with
| None ->
match "CONSUMEPLUGIN_THINGS" |> getEnvironmentVariable with
- | null ->
+ | None ->
sprintf
"No value was supplied for %s, nor was environment variable %s set"
(sprintf "--%s" "bool-var")
@@ -2661,7 +2677,7 @@ module ContainsBoolEnvVarArgParse =
|> ArgParser_errors.Add
Unchecked.defaultof<_>
- | x ->
+ | Some x ->
if System.String.Equals (x, "1", System.StringComparison.OrdinalIgnoreCase) then
true
else if System.String.Equals (x, "0", System.StringComparison.OrdinalIgnoreCase) then
@@ -2679,7 +2695,7 @@ module ContainsBoolEnvVarArgParse =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
static member parse (args : string list) : ContainsBoolEnvVar =
- ContainsBoolEnvVar.parse' System.Environment.GetEnvironmentVariable args
+ ContainsBoolEnvVar.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -2698,7 +2714,7 @@ module WithFlagDuArgParse =
/// Extension methods for argument parsing
type WithFlagDu with
- static member parse' (getEnvironmentVariable : string -> string) (args : string list) : WithFlagDu =
+ static member parse' (getEnvironmentVariable : string -> string option) (args : string list) : WithFlagDu =
let ArgParser_errors = ResizeArray ()
let helpText () =
@@ -2852,7 +2868,7 @@ module WithFlagDuArgParse =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
static member parse (args : string list) : WithFlagDu =
- WithFlagDu.parse' System.Environment.GetEnvironmentVariable args
+ WithFlagDu.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -2871,7 +2887,11 @@ module ContainsFlagEnvVarArgParse =
/// Extension methods for argument parsing
type ContainsFlagEnvVar with
- static member parse' (getEnvironmentVariable : string -> string) (args : string list) : ContainsFlagEnvVar =
+ static member parse'
+ (getEnvironmentVariable : string -> string option)
+ (args : string list)
+ : ContainsFlagEnvVar
+ =
let ArgParser_errors = ResizeArray ()
let helpText () =
@@ -3018,7 +3038,7 @@ module ContainsFlagEnvVarArgParse =
match arg_0 with
| None ->
match "CONSUMEPLUGIN_THINGS" |> getEnvironmentVariable with
- | null ->
+ | None ->
sprintf
"No value was supplied for %s, nor was environment variable %s set"
(sprintf "--%s" "dry-run")
@@ -3026,7 +3046,7 @@ module ContainsFlagEnvVarArgParse =
|> ArgParser_errors.Add
Unchecked.defaultof<_>
- | x ->
+ | Some x ->
if System.String.Equals (x, "1", System.StringComparison.OrdinalIgnoreCase) then
if true = Consts.FALSE then
DryRunMode.Wet
@@ -3056,7 +3076,7 @@ module ContainsFlagEnvVarArgParse =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
static member parse (args : string list) : ContainsFlagEnvVar =
- ContainsFlagEnvVar.parse' System.Environment.GetEnvironmentVariable args
+ ContainsFlagEnvVar.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -3076,7 +3096,7 @@ module ContainsFlagDefaultValueArgParse =
type ContainsFlagDefaultValue with
static member parse'
- (getEnvironmentVariable : string -> string)
+ (getEnvironmentVariable : string -> string option)
(args : string list)
: ContainsFlagDefaultValue
=
@@ -3239,7 +3259,7 @@ module ContainsFlagDefaultValueArgParse =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
static member parse (args : string list) : ContainsFlagDefaultValue =
- ContainsFlagDefaultValue.parse' System.Environment.GetEnvironmentVariable args
+ ContainsFlagDefaultValue.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -3258,7 +3278,7 @@ module ManyLongFormsArgParse =
/// Extension methods for argument parsing
type ManyLongForms with
- static member parse' (getEnvironmentVariable : string -> string) (args : string list) : ManyLongForms =
+ static member parse' (getEnvironmentVariable : string -> string option) (args : string list) : ManyLongForms =
let ArgParser_errors = ResizeArray ()
let helpText () =
@@ -3504,7 +3524,7 @@ module ManyLongFormsArgParse =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
static member parse (args : string list) : ManyLongForms =
- ManyLongForms.parse' System.Environment.GetEnvironmentVariable args
+ ManyLongForms.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -3524,7 +3544,7 @@ module FlagsIntoPositionalArgsArgParse =
type FlagsIntoPositionalArgs with
static member parse'
- (getEnvironmentVariable : string -> string)
+ (getEnvironmentVariable : string -> string option)
(args : string list)
: FlagsIntoPositionalArgs
=
@@ -3668,7 +3688,7 @@ module FlagsIntoPositionalArgsArgParse =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
static member parse (args : string list) : FlagsIntoPositionalArgs =
- FlagsIntoPositionalArgs.parse' System.Environment.GetEnvironmentVariable args
+ FlagsIntoPositionalArgs.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -3688,7 +3708,7 @@ module FlagsIntoPositionalArgsChoiceArgParse =
type FlagsIntoPositionalArgsChoice with
static member parse'
- (getEnvironmentVariable : string -> string)
+ (getEnvironmentVariable : string -> string option)
(args : string list)
: FlagsIntoPositionalArgsChoice
=
@@ -3832,7 +3852,7 @@ module FlagsIntoPositionalArgsChoiceArgParse =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
static member parse (args : string list) : FlagsIntoPositionalArgsChoice =
- FlagsIntoPositionalArgsChoice.parse' System.Environment.GetEnvironmentVariable args
+ FlagsIntoPositionalArgsChoice.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -3852,7 +3872,7 @@ module FlagsIntoPositionalArgsIntArgParse =
type FlagsIntoPositionalArgsInt with
static member parse'
- (getEnvironmentVariable : string -> string)
+ (getEnvironmentVariable : string -> string option)
(args : string list)
: FlagsIntoPositionalArgsInt
=
@@ -3996,7 +4016,7 @@ module FlagsIntoPositionalArgsIntArgParse =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
static member parse (args : string list) : FlagsIntoPositionalArgsInt =
- FlagsIntoPositionalArgsInt.parse' System.Environment.GetEnvironmentVariable args
+ FlagsIntoPositionalArgsInt.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -4016,7 +4036,7 @@ module FlagsIntoPositionalArgsIntChoiceArgParse =
type FlagsIntoPositionalArgsIntChoice with
static member parse'
- (getEnvironmentVariable : string -> string)
+ (getEnvironmentVariable : string -> string option)
(args : string list)
: FlagsIntoPositionalArgsIntChoice
=
@@ -4160,7 +4180,7 @@ module FlagsIntoPositionalArgsIntChoiceArgParse =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
static member parse (args : string list) : FlagsIntoPositionalArgsIntChoice =
- FlagsIntoPositionalArgsIntChoice.parse' System.Environment.GetEnvironmentVariable args
+ FlagsIntoPositionalArgsIntChoice.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
namespace ConsumePlugin
open System
@@ -4180,7 +4200,7 @@ module FlagsIntoPositionalArgs'ArgParse =
type FlagsIntoPositionalArgs' with
static member parse'
- (getEnvironmentVariable : string -> string)
+ (getEnvironmentVariable : string -> string option)
(args : string list)
: FlagsIntoPositionalArgs'
=
@@ -4324,4 +4344,4 @@ module FlagsIntoPositionalArgs'ArgParse =
ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s"
static member parse (args : string list) : FlagsIntoPositionalArgs' =
- FlagsIntoPositionalArgs'.parse' System.Environment.GetEnvironmentVariable args
+ FlagsIntoPositionalArgs'.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args
diff --git a/WoofWare.Myriad.Plugins.Test/TestArgParser/TestArgParser.fs b/WoofWare.Myriad.Plugins.Test/TestArgParser/TestArgParser.fs
index 5b2b4d0..900ae3f 100644
--- a/WoofWare.Myriad.Plugins.Test/TestArgParser/TestArgParser.fs
+++ b/WoofWare.Myriad.Plugins.Test/TestArgParser/TestArgParser.fs
@@ -68,7 +68,7 @@ module TestArgParser =
let getEnvVar (_ : string) =
Interlocked.Increment envCalls |> ignore
- ""
+ None
let args = [ "--foo=3" ; "--non-existent" ; "--bar=4" ; "--baz=true" ]
@@ -91,7 +91,7 @@ module TestArgParser =
let getEnvVar (_ : string) =
Interlocked.Increment envCalls |> ignore
- ""
+ None
let property (args : (int * bool) list) (afterDoubleDash : int list option) =
let flatArgs =
@@ -127,7 +127,7 @@ module TestArgParser =
let getEnvVar (_ : string) =
Interlocked.Increment envCalls |> ignore
- ""
+ None
let args = [ "--foo=3" ; "--rest" ; "7" ; "--bar=4" ; "--baz=true" ; "--rest=8" ]
@@ -150,7 +150,7 @@ module TestArgParser =
let getEnvVar (_ : string) =
Interlocked.Increment envCalls |> ignore
- ""
+ None
let args = [ "--foo=3" ; "--foo" ; "9" ; "--bar=4" ; "--baz=true" ; "--baz=false" ]
@@ -171,7 +171,7 @@ Argument '--baz' was supplied multiple times: True and false"""
let getEnvVar (_ : string) =
Interlocked.Increment envCalls |> ignore
- ""
+ None
let args = [ "--" ; "--foo=3" ; "--bar=4" ; "--baz=true" ]
@@ -191,7 +191,7 @@ Required argument '--baz' received no value"""
let ``Help text`` () =
let getEnvVar (s : string) =
s |> shouldEqual "CONSUMEPLUGIN_THINGS"
- "hi!"
+ Some "hi!"
let exc =
Assert.Throws (fun () -> Basic.parse' getEnvVar [ "--help" ] |> ignore)
@@ -210,7 +210,7 @@ Required argument '--baz' received no value"""
let getEnvVar (_ : string) =
Interlocked.Increment envVars |> ignore
- ""
+ None
let exc =
Assert.Throws (fun () -> LoadsOfTypes.parse' getEnvVar [ "--help" ] |> ignore)
@@ -236,7 +236,7 @@ Required argument '--baz' received no value"""
let ``Default values`` () =
let getEnvVar (s : string) =
s |> shouldEqual "CONSUMEPLUGIN_THINGS"
- "hi!"
+ Some "hi!"
let args =
[
@@ -264,7 +264,7 @@ Required argument '--baz' received no value"""
let getEnvVar (_ : string) =
Interlocked.Increment count |> ignore
- ""
+ None
let exc =
Assert.Throws (fun () -> DatesAndTimes.parse' getEnvVar [ "--help" ] |> ignore)
@@ -285,7 +285,7 @@ Required argument '--baz' received no value"""
let getEnvVar (_ : string) =
Interlocked.Increment count |> ignore
- ""
+ None
let parsed =
DatesAndTimes.parse'
@@ -448,7 +448,7 @@ Required argument '--exact' received no value"""
let ``Bool env vars can be populated`` (envValue : string, boolValue : bool) =
let getEnvVar (s : string) =
s |> shouldEqual "CONSUMEPLUGIN_THINGS"
- envValue
+ Some envValue
ContainsBoolEnvVar.parse' getEnvVar []
|> shouldEqual
@@ -470,7 +470,7 @@ Required argument '--exact' received no value"""
let ``Flag DUs can be parsed from env var`` (envValue : string, boolValue : bool) =
let getEnvVar (s : string) =
s |> shouldEqual "CONSUMEPLUGIN_THINGS"
- envValue
+ Some envValue
let boolValue = if boolValue then DryRunMode.Dry else DryRunMode.Wet
diff --git a/WoofWare.Myriad.Plugins/ArgParserGenerator.fs b/WoofWare.Myriad.Plugins/ArgParserGenerator.fs
index fb33747..b7f5257 100644
--- a/WoofWare.Myriad.Plugins/ArgParserGenerator.fs
+++ b/WoofWare.Myriad.Plugins/ArgParserGenerator.fs
@@ -1396,7 +1396,7 @@ module internal ArgParserGenerator =
[
SynMatchClause.create
- SynPat.createNull
+ (SynPat.named "None")
(SynExpr.sequential
[
errorMessage
@@ -1406,7 +1406,7 @@ module internal ArgParserGenerator =
unchecked
])
- SynMatchClause.create (SynPat.named "x") parser
+ SynMatchClause.create (SynPat.nameWithArgs "Some" [ SynPat.named "x" ]) parser
]
|> SynExpr.createMatch result
| ArgumentDefaultSpec.FunctionCall name ->
@@ -1694,7 +1694,7 @@ module internal ArgParserGenerator =
[ Ident.create "parse'" ]
[
SynPat.named "getEnvironmentVariable"
- |> SynPat.annotateType (SynType.funFromDomain SynType.string SynType.string)
+ |> SynPat.annotateType (SynType.funFromDomain SynType.string (SynType.option SynType.string))
argsParam
]
|> SynBinding.withReturnAnnotation (SynType.createLongIdent [ taggedType.Name ])
@@ -1708,7 +1708,12 @@ module internal ArgParserGenerator =
let parse =
SynExpr.createLongIdent' parsePrimeCall
- |> SynExpr.applyTo (SynExpr.createLongIdent [ "System" ; "Environment" ; "GetEnvironmentVariable" ])
+ |> SynExpr.applyTo (
+ SynExpr.paren (
+ SynExpr.createLongIdent [ "System" ; "Environment" ; "GetEnvironmentVariable" ]
+ |> SynExpr.composeWith (SynExpr.createLongIdent [ "Option" ; "ofObj" ])
+ )
+ )
|> SynExpr.applyTo (SynExpr.createIdent "args")
|> SynBinding.basic [ Ident.create "parse" ] [ argsParam ]
|> SynBinding.withReturnAnnotation (SynType.createLongIdent [ taggedType.Name ])
diff --git a/WoofWare.Myriad.Plugins/JsonParseGenerator.fs b/WoofWare.Myriad.Plugins/JsonParseGenerator.fs
index 31fc0b0..01573c8 100644
--- a/WoofWare.Myriad.Plugins/JsonParseGenerator.fs
+++ b/WoofWare.Myriad.Plugins/JsonParseGenerator.fs
@@ -46,7 +46,7 @@ module internal JsonParseGenerator =
|> SynExpr.createMatch indexed
|> SynExpr.paren
- let assertNotNull (body : SynExpr) (boundIdent : Ident) : SynExpr =
+ let assertNotNull (boundIdent : Ident) (body : SynExpr) : SynExpr =
let raiseExpr =
SynExpr.CreateConst ()
|> SynExpr.applyFunction (SynExpr.createLongIdent [ "System" ; "ArgumentNullException" ])
@@ -108,7 +108,7 @@ module internal JsonParseGenerator =
|> SynExpr.pipeThroughFunction (
SynExpr.applyFunction
(SynExpr.createLongIdent [ "Seq" ; "map" ])
- (SynExpr.createLambda "elt" (assertNotNull body (Ident.create "elt")))
+ (SynExpr.createLambda "elt" (assertNotNull (Ident.create "elt") body))
)
|> SynExpr.pipeThroughFunction (SynExpr.createLongIdent [ collectionType ; "ofSeq" ])
diff --git a/WoofWare.Myriad.Plugins/WoofWare.Myriad.Plugins.fsproj b/WoofWare.Myriad.Plugins/WoofWare.Myriad.Plugins.fsproj
index 08db020..1458d9d 100644
--- a/WoofWare.Myriad.Plugins/WoofWare.Myriad.Plugins.fsproj
+++ b/WoofWare.Myriad.Plugins/WoofWare.Myriad.Plugins.fsproj
@@ -22,7 +22,7 @@
-
+
diff --git a/WoofWare.Myriad.Plugins/version.json b/WoofWare.Myriad.Plugins/version.json
index edfcdca..7c0d2d0 100644
--- a/WoofWare.Myriad.Plugins/version.json
+++ b/WoofWare.Myriad.Plugins/version.json
@@ -1,5 +1,5 @@
{
- "version": "5.0",
+ "version": "6.0",
"publicReleaseRefSpec": [
"^refs/heads/main$"
],
diff --git a/nix/deps.json b/nix/deps.json
index 0dbecfe..a9d5973 100644
--- a/nix/deps.json
+++ b/nix/deps.json
@@ -381,7 +381,7 @@
},
{
"pname": "WoofWare.Whippet.Fantomas",
- "version": "0.5.1",
- "hash": "sha256-59CwnOZQAq5ZJoUkd87OiP8KUwx8xYDLMimMMTlKeZA="
+ "version": "0.6.1",
+ "hash": "sha256-UTK+WbHR83zbMZ+2BzecIrKvp/5ZppHToIZ/oHTIF1k="
}
]