From 1b437526e691c256c3021ea02ea6a28ef580ed6b Mon Sep 17 00:00:00 2001 From: egor mihneivch Date: Sat, 27 Jun 2020 09:24:51 +0300 Subject: [PATCH 1/2] explicitly specify default values for color arguments --- Sources/Badgy/Commands/Badgy.swift | 7 ++++--- Sources/Badgy/Helpers/ColorCode.swift | 11 +++++++++++ Sources/Badgy/Helpers/Factory+Small.swift | 2 +- Sources/Badgy/Helpers/Factory.swift | 4 ++-- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/Sources/Badgy/Commands/Badgy.swift b/Sources/Badgy/Commands/Badgy.swift index c787ce8..5031ea5 100644 --- a/Sources/Badgy/Commands/Badgy.swift +++ b/Sources/Badgy/Commands/Badgy.swift @@ -28,16 +28,17 @@ extension Badgy { or Provide a named color: 'snow' | 'snow1' | ... Complete list of named colors: https://imagemagick.org/script/color.php#color_names + (default: randomly selected from \(Factory.colors.joined(separator: " | ")) """) var color: ColorCode? - @Option(help: """ + @Option(default: "white", help: """ Specify a valid hex color code in a case insensitive format: '#rrggbb' | '#rrggbbaa' or Provide a named color: 'snow' | 'snow1' | ... Complete list of named colors: https://imagemagick.org/script/color.php#color_names """) - var tintColor: ColorCode? + var tintColor: ColorCode @Flag(help: "Indicates Badgy should replace the input icon") var replace: Bool @@ -133,7 +134,7 @@ private extension IconSignPipeline { var pipeline = IconSignPipeline(icon: options.icon, label: options.label) pipeline.color = options.color?.value - pipeline.tintColor = options.tintColor?.value + pipeline.tintColor = options.tintColor.value pipeline.replace = options.replace return pipeline diff --git a/Sources/Badgy/Helpers/ColorCode.swift b/Sources/Badgy/Helpers/ColorCode.swift index 59f5746..cfbe5f6 100644 --- a/Sources/Badgy/Helpers/ColorCode.swift +++ b/Sources/Badgy/Helpers/ColorCode.swift @@ -22,3 +22,14 @@ extension ColorCode: ExpressibleByArgument { } } +extension ColorCode: CustomStringConvertible { + var description: String { + return value + } +} + +extension ColorCode: ExpressibleByStringLiteral { + init(stringLiteral value: StringLiteralType) { + self.init(argument: value)! + } +} diff --git a/Sources/Badgy/Helpers/Factory+Small.swift b/Sources/Badgy/Helpers/Factory+Small.swift index ff98a01..50fe7bf 100644 --- a/Sources/Badgy/Helpers/Factory+Small.swift +++ b/Sources/Badgy/Helpers/Factory+Small.swift @@ -14,7 +14,7 @@ extension Factory { tintColorHexCode: String? = nil, inFolder folder: Path) throws -> String { - let color = colorHexCode ?? colors.randomElement()! + let color = colorHexCode ?? Factory.colors.randomElement()! let tintColor = tintColorHexCode ?? "white" do { diff --git a/Sources/Badgy/Helpers/Factory.swift b/Sources/Badgy/Helpers/Factory.swift index 9f9e64c..44a496e 100644 --- a/Sources/Badgy/Helpers/Factory.swift +++ b/Sources/Badgy/Helpers/Factory.swift @@ -11,7 +11,7 @@ import PathKit typealias BadgeProductionResponse = ((Result) throws -> Void) struct Factory { - let colors = ["#EE6D6D", "#A36DEE", "#4C967E", "#3B8A4B", "#CABA0E", "#E68C31", "#E11818"] + static let colors = ["#EE6D6D", "#A36DEE", "#4C967E", "#3B8A4B", "#CABA0E", "#E68C31", "#E11818"] func makeBadge(with label: String, colorHexCode: String? = nil, @@ -20,7 +20,7 @@ struct Factory { inFolder folder: Path) throws -> String { do { - let color = colorHexCode ?? colors.randomElement()! + let color = colorHexCode ?? Factory.colors.randomElement()! let tintColor = tintColorHexCode ?? "white" let folderBase = folder.absolute().description From 22e6e36365ef78efa466e9b6f599397046fad893 Mon Sep 17 00:00:00 2001 From: egor mihneivch Date: Sat, 27 Jun 2020 09:29:41 +0300 Subject: [PATCH 2/2] close default bracket --- Sources/Badgy/Commands/Badgy.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Badgy/Commands/Badgy.swift b/Sources/Badgy/Commands/Badgy.swift index 5031ea5..3718c7f 100644 --- a/Sources/Badgy/Commands/Badgy.swift +++ b/Sources/Badgy/Commands/Badgy.swift @@ -28,7 +28,7 @@ extension Badgy { or Provide a named color: 'snow' | 'snow1' | ... Complete list of named colors: https://imagemagick.org/script/color.php#color_names - (default: randomly selected from \(Factory.colors.joined(separator: " | ")) + (default: randomly selected from \(Factory.colors.joined(separator: " | "))) """) var color: ColorCode?