Skip to content

Commit d33fbdb

Browse files
committed
Merge pull request #12 from conclurer/master
Added second name and flag parsing as false to Flag
2 parents 1fde582 + 217b918 commit d33fbdb

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

Commander/ArgumentDescription.swift

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,19 +151,23 @@ public class Flag : ArgumentDescriptor {
151151

152152
public let name:String
153153
public let flag:Character?
154+
public let disabledName:String
155+
public let disabledFlag:Character?
154156
public let description:String?
155157
public let `default`:ValueType
156158
public var type:ArgumentType { return .Option }
157159

158-
public init(_ name:String, flag:Character? = nil, description:String? = nil, `default`:Bool = false) {
160+
public init(_ name:String, flag:Character? = nil, disabledName:String? = nil, disabledFlag:Character? = nil, description:String? = nil, `default`:Bool = false) {
159161
self.name = name
162+
self.disabledName = disabledName ?? "no-\(name)"
160163
self.flag = flag
164+
self.disabledFlag = disabledFlag
161165
self.description = description
162166
self.`default` = `default`
163167
}
164168

165169
public func parse(parser:ArgumentParser) throws -> ValueType {
166-
if parser.hasOption("no-\(name)") {
170+
if parser.hasOption(disabledName) {
167171
return false
168172
}
169173

@@ -176,6 +180,11 @@ public class Flag : ArgumentDescriptor {
176180
return true
177181
}
178182
}
183+
if let disabledFlag = disabledFlag {
184+
if parser.hasFlag(disabledFlag) {
185+
return false
186+
}
187+
}
179188

180189
return `default`
181190
}

0 commit comments

Comments
 (0)