Skip to content

Commit 79c7304

Browse files
authored
Merge pull request #300 from LoopPerfect/feature/optional-version-in-add
* Version now optional in add
2 parents c98b1f1 + 0c22617 commit 79c7304

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

buckaroo-tests/Command.fs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,16 @@ let ``Command.parse works correctly`` () =
2929
(Result.Ok (Command.UpgradeDependencies [], verboseLoggingLevel), " upgrade --verbose ");
3030
(Result.Ok (Command.UpgradeDependencies [ abcDef ], verboseLoggingLevel), "upgrade abc/def --verbose ");
3131

32+
(
33+
Result.Ok
34+
(
35+
Command.AddDependencies
36+
[ { Package = ijkXyz; Constraint = Constraint.wildcard; Targets = None } ],
37+
defaultLoggingLevel
38+
),
39+
"add github.com/ijk/xyz "
40+
);
41+
3242
(
3343
Result.Ok (Command.UpgradeDependencies [ abcDef; ijkXyz ], verboseLoggingLevel),
3444
"upgrade abc/def github.com/ijk/xyz --verbose "

buckaroo/Command.fs

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,12 +87,38 @@ module Command =
8787
return Quickstart
8888
}
8989

90+
let private packageToAddParser =
91+
parse {
92+
let! p = PackageIdentifier.parser
93+
94+
return!
95+
parse {
96+
do! CharParsers.skipString "@"
97+
let! c = Constraint.parser
98+
99+
return
100+
{
101+
Package = p;
102+
Constraint = c;
103+
Targets = None;
104+
}
105+
} <|>
106+
parse {
107+
return
108+
{
109+
Package = p;
110+
Constraint = Constraint.wildcard;
111+
Targets = None;
112+
}
113+
}
114+
}
115+
90116
let addDependenciesParser = parse {
91117
do! CharParsers.spaces
92118
do! CharParsers.skipString "add"
93119
do! CharParsers.spaces1
94120

95-
let! deps = Primitives.sepEndBy1 Dependency.parser CharParsers.spaces1
121+
let! deps = Primitives.sepEndBy1 packageToAddParser CharParsers.spaces1
96122

97123
return AddDependencies deps
98124
}

0 commit comments

Comments
 (0)