File tree Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Original file line number Diff line number Diff line change @@ -18,12 +18,15 @@ struct Changelog: ParsableCommand {
18
18
19
19
enum Release : ExpressibleByArgument , CustomStringConvertible {
20
20
case unreleased
21
+ case latest
21
22
case release( String )
22
23
23
24
var description : String {
24
25
switch self {
25
26
case . unreleased:
26
27
return defaultValueDescription
28
+ case . latest:
29
+ return " latest "
27
30
case let . release( value) :
28
31
return value
29
32
}
@@ -37,10 +40,21 @@ struct Changelog: ParsableCommand {
37
40
switch argument. lowercased ( ) {
38
41
case " unreleased " :
39
42
self = . unreleased
43
+ case " latest " :
44
+ self = . latest
40
45
default :
41
46
self = . release( argument)
42
47
}
43
48
}
49
+
50
+ func filterForFirstMatching( _ heading: Heading ) -> Bool {
51
+ switch self {
52
+ case . latest:
53
+ heading. plainText. lowercased ( ) != Release . unreleased. description
54
+ case . unreleased, . release:
55
+ heading. plainText. lowercased ( ) == description
56
+ }
57
+ }
44
58
}
45
59
46
60
@Argument ( help: " Path to Changelog.md file " )
@@ -60,7 +74,7 @@ struct Changelog: ParsableCommand {
60
74
let heading = document. children
61
75
. compactMap { $0 as? Heading }
62
76
. filter { $0. level == 2 }
63
- . first { $0 . plainText . lowercased ( ) == release . description }
77
+ . first { release . filterForFirstMatching ( $0 ) }
64
78
65
79
guard let heading else {
66
80
throw ValidationError ( " Changelog does not contain ' \( release. description. localizedCapitalized) ' section " )
You can’t perform that action at this time.
0 commit comments