diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/ResgenSwift.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/ResgenSwift.xcscheme
index 9b1dd24..354d5d2 100644
--- a/.swiftpm/xcode/xcshareddata/xcschemes/ResgenSwift.xcscheme
+++ b/.swiftpm/xcode/xcshareddata/xcschemes/ResgenSwift.xcscheme
@@ -102,6 +102,20 @@
ReferencedContainer = "container:">
+
+
+
+
+
+
+
+
= 2 else {
let error = ColorsToolError.badFormat(colorLine)
- print(error.localizedDescription)
+ print(error.description)
Colors.exit(withError: error)
}
diff --git a/Sources/ResgenSwift/Fonts/Fonts.swift b/Sources/ResgenSwift/Fonts/Fonts.swift
index 0cf494d..f6e172f 100644
--- a/Sources/ResgenSwift/Fonts/Fonts.swift
+++ b/Sources/ResgenSwift/Fonts/Fonts.swift
@@ -74,14 +74,14 @@ struct Fonts: ParsableCommand {
// Check input file exists
guard fileManager.fileExists(atPath: options.inputFile) else {
let error = FontsToolError.fileNotExists(options.inputFile)
- print(error.localizedDescription)
+ print(error.description)
Fonts.exit(withError: error)
}
// Extension for UIKit and SwiftUI should have different name
guard options.extensionName != options.extensionNameSwiftUI else {
let error = FontsToolError.extensionNamesCollision(options.extensionName)
- print(error.localizedDescription)
+ print(error.description)
Fonts.exit(withError: error)
}
diff --git a/Sources/ResgenSwift/Fonts/FontsToolError.swift b/Sources/ResgenSwift/Fonts/FontsToolError.swift
index 30a8a22..d553cd3 100644
--- a/Sources/ResgenSwift/Fonts/FontsToolError.swift
+++ b/Sources/ResgenSwift/Fonts/FontsToolError.swift
@@ -14,22 +14,22 @@ enum FontsToolError: Error {
case fileNotExists(String)
case writeExtension(String, String)
- var localizedDescription: String {
+ var description: String {
switch self {
case .extensionNamesCollision(let extensionName):
- return "error:[\(Fonts.toolName)] Error on extension names, extension name and SwiftUI extension name should be different (\(extensionName) is used on both)"
+ return "error: [\(Fonts.toolName)] Error on extension names, extension name and SwiftUI extension name should be different (\(extensionName) is used on both)"
case .fcScan(let path, let code, let output):
- return "error:[\(Fonts.toolName)] Error while getting fontName (fc-scan --format %{postscriptname} \(path). fc-scan exit with \(code) and output is: \(output ?? "no output")"
+ return "error: [\(Fonts.toolName)] Error while getting fontName (fc-scan --format %{postscriptname} \(path). fc-scan exit with \(code) and output is: \(output ?? "no output")"
case .inputFolderNotFound(let inputFolder):
- return " error:[\(Fonts.toolName)] Input folder not found: \(inputFolder)"
+ return "error: [\(Fonts.toolName)] Input folder not found: \(inputFolder)"
case .fileNotExists(let filename):
- return " error:[\(Fonts.toolName)] File \(filename) does not exists"
+ return "error: [\(Fonts.toolName)] File \(filename) does not exists"
case .writeExtension(let filename, let info):
- return "error:[\(Fonts.toolName)] An error occured while writing extension in \(filename): \(info)"
+ return "error: [\(Fonts.toolName)] An error occured while writing extension in \(filename): \(info)"
}
}
}
diff --git a/Sources/ResgenSwift/Fonts/FontsToolHelper.swift b/Sources/ResgenSwift/Fonts/FontsToolHelper.swift
index 686db9f..02b3b8d 100644
--- a/Sources/ResgenSwift/Fonts/FontsToolHelper.swift
+++ b/Sources/ResgenSwift/Fonts/FontsToolHelper.swift
@@ -39,7 +39,7 @@ class FontsToolHelper {
let fileManager = FileManager()
guard fileManager.fileExists(atPath: inputFolder) else {
let error = FontsToolError.inputFolderNotFound(inputFolder)
- print(error.localizedDescription)
+ print(error.description)
Fonts.exit(withError: error)
}
@@ -64,7 +64,7 @@ class FontsToolHelper {
guard let fontName = task.output, task.terminationStatus == 0 else {
let error = FontsToolError.fcScan(path, task.terminationStatus, task.output)
- print(error.localizedDescription)
+ print(error.description)
Fonts.exit(withError: error)
}
diff --git a/Sources/ResgenSwift/Fonts/Generator/FontToolContentGenerator.swift b/Sources/ResgenSwift/Fonts/Generator/FontToolContentGenerator.swift
index eff2dea..45c0a03 100644
--- a/Sources/ResgenSwift/Fonts/Generator/FontToolContentGenerator.swift
+++ b/Sources/ResgenSwift/Fonts/Generator/FontToolContentGenerator.swift
@@ -38,7 +38,7 @@ class FontExtensionGenerator {
try extensionContent.write(to: extensionFilePathURL, atomically: false, encoding: .utf8)
} catch (let error) {
let error = FontsToolError.writeExtension(extensionFilePath, error.localizedDescription)
- print(error.localizedDescription)
+ print(error.description)
Fonts.exit(withError: error)
}
}
diff --git a/Sources/ResgenSwift/Generate/Generate.swift b/Sources/ResgenSwift/Generate/Generate.swift
index 6604ff8..8902545 100644
--- a/Sources/ResgenSwift/Generate/Generate.swift
+++ b/Sources/ResgenSwift/Generate/Generate.swift
@@ -41,7 +41,9 @@ struct Generate: ParsableCommand {
print(" - \(configuration.tags.count) tags configuration(s)")
print()
- print("Input file: \(configuration.colors.first?.inputFile ?? "no input file")")
+ if let architecture = configuration.architecture {
+ ArchitectureGenerator.writeArchitecture(architecture)
+ }
// Execute commands
configuration.runnableConfigurations
diff --git a/Sources/ResgenSwift/Generate/GenerateError.swift b/Sources/ResgenSwift/Generate/GenerateError.swift
index 4960d37..2ebc045 100644
--- a/Sources/ResgenSwift/Generate/GenerateError.swift
+++ b/Sources/ResgenSwift/Generate/GenerateError.swift
@@ -11,20 +11,24 @@ enum GenerateError: Error {
case fileNotExists(String)
case invalidConfigurationFile(String)
case commandError([String], String)
+ case writeFile(String, String)
- var localizedDescription: String {
+ var description: String {
switch self {
case .fileNotExists(let filename):
- return " error:[\(Generate.toolName)] File \(filename) does not exists"
+ return "error: [\(Generate.toolName)] File \(filename) does not exists"
case .invalidConfigurationFile(let filename):
- return " error:[\(Generate.toolName)] File \(filename) is not a valid configuration file"
+ return "error: [\(Generate.toolName)] File \(filename) is not a valid configuration file"
case .commandError(let command, let terminationStatus):
let readableCommand = command
.map { $0 }
.joined(separator: " ")
- return "error:[\(Generate.toolName)] An error occured while running command '\(readableCommand)'. Command terminate with status code: \(terminationStatus)"
+ return "error: [\(Generate.toolName)] An error occured while running command '\(readableCommand)'. Command terminate with status code: \(terminationStatus)"
+
+ case .writeFile(let filename, let info):
+ return "error: [\(Generate.toolName)] An error occured while writing file in \(filename): \(info)"
}
}
}
diff --git a/Sources/ResgenSwift/Generate/Generator/ArchitectureGenerator.swift b/Sources/ResgenSwift/Generate/Generator/ArchitectureGenerator.swift
new file mode 100644
index 0000000..8ffa77e
--- /dev/null
+++ b/Sources/ResgenSwift/Generate/Generator/ArchitectureGenerator.swift
@@ -0,0 +1,37 @@
+//
+// ArchitectureGenerator.swift
+//
+//
+// Created by Thibaut Schmitt on 18/11/2022.
+//
+
+import ToolCore
+import Foundation
+
+struct ArchitectureGenerator {
+ static func writeArchitecture(_ architecture: ConfigurationArchitecture) {
+ // Create extension content
+ let architectureContent = [
+ "// Generated by ResgenSwift.\(Generate.toolName) \(ResgenSwiftVersion)",
+ architecture.getClass()
+ ]
+ .joined(separator: "\n\n")
+
+ let filename = "\(architecture.classname).swift"
+ guard let filePath = architecture.path else {
+ let error = GenerateError.writeFile(filename, "Path of file is not defined.")
+ print(error.description)
+ Generate.exit(withError: error)
+ }
+
+ // Write content
+ let architectureFilePathURL = URL(fileURLWithPath: "\(filePath)/\(filename)")
+ do {
+ try architectureContent.write(to: architectureFilePathURL, atomically: false, encoding: .utf8)
+ } catch (let error) {
+ let error = GenerateError.writeFile(filename, error.localizedDescription)
+ print(error.description)
+ Generate.exit(withError: error)
+ }
+ }
+}
diff --git a/Sources/ResgenSwift/Generate/Model/ConfigurationFile.swift b/Sources/ResgenSwift/Generate/Model/ConfigurationFile.swift
index bc405e9..9cf8c47 100644
--- a/Sources/ResgenSwift/Generate/Model/ConfigurationFile.swift
+++ b/Sources/ResgenSwift/Generate/Model/ConfigurationFile.swift
@@ -8,6 +8,7 @@
import Foundation
struct ConfigurationFile: Codable, CustomDebugStringConvertible {
+ var architecture: ConfigurationArchitecture?
var colors: [ColorsConfiguration]
var fonts: [FontsConfiguration]
var images: [ImagesConfiguration]
@@ -38,6 +39,42 @@ struct ConfigurationFile: Codable, CustomDebugStringConvertible {
}
}
+struct ConfigurationArchitecture: Codable {
+ let property: String
+ let classname: String
+ let path: String?
+ let children: [ConfigurationArchitecture]?
+
+ func getProperty(isStatic: Bool) -> String {
+ " \(isStatic ? "static " : "")let \(property) = \(classname)()"
+ }
+
+ func getClass(generateStaticProperty: Bool = true) -> String {
+ guard children?.isEmpty == false else {
+ return "class \(classname) {}"
+ }
+
+ let classDefinition = [
+ "class \(classname) {",
+ children?.map { $0.getProperty(isStatic: generateStaticProperty) }.joined(separator: "\n"),
+ "}"
+ ]
+ .compactMap { $0 }
+ .joined(separator: "\n")
+
+ return [classDefinition, "", getSubclass()]
+ .compactMap { $0 }
+ .joined(separator: "\n")
+ }
+
+ func getSubclass() -> String? {
+ guard let children else { return nil }
+ return children.compactMap { arch in
+ arch.getClass(generateStaticProperty: false)
+ }
+ .joined(separator: "\n\n")
+ }
+}
struct ColorsConfiguration: Codable, CustomDebugStringConvertible {
let inputFile: String
@@ -267,4 +304,3 @@ struct TagsConfiguration: Codable, CustomDebugStringConvertible {
"""
}
}
-
diff --git a/Sources/ResgenSwift/Generate/Parser/ConfigurationFileParser.swift b/Sources/ResgenSwift/Generate/Parser/ConfigurationFileParser.swift
index 39e64bf..0b0c885 100644
--- a/Sources/ResgenSwift/Generate/Parser/ConfigurationFileParser.swift
+++ b/Sources/ResgenSwift/Generate/Parser/ConfigurationFileParser.swift
@@ -12,13 +12,13 @@ class ConfigurationFileParser {
static func parse(_ configurationFile: String) -> ConfigurationFile {
guard let data = FileManager().contents(atPath: configurationFile) else {
let error = GenerateError.fileNotExists(configurationFile)
- print(error.localizedDescription)
+ print(error.description)
Generate.exit(withError: error)
}
guard let configuration = try? YAMLDecoder().decode(ConfigurationFile.self, from: data) else {
let error = GenerateError.invalidConfigurationFile(configurationFile)
- print(error.localizedDescription)
+ print(error.description)
Generate.exit(withError: error)
}
diff --git a/Sources/ResgenSwift/Images/Extensions/FileManagerExtensions.swift b/Sources/ResgenSwift/Images/Extensions/FileManagerExtensions.swift
index c9eb83c..c02e798 100644
--- a/Sources/ResgenSwift/Images/Extensions/FileManagerExtensions.swift
+++ b/Sources/ResgenSwift/Images/Extensions/FileManagerExtensions.swift
@@ -12,7 +12,7 @@ extension FileManager {
var files = [String]()
guard let enumerator = self.enumerator(at: URL(string: directory)!, includingPropertiesForKeys: [.isRegularFileKey], options: [.skipsHiddenFiles, .skipsPackageDescendants]) else {
let error = ImagesError.unknown("Cannot enumerate file in \(directory)")
- print(error.localizedDescription)
+ print(error.description)
Images.exit(withError: error)
}
@@ -24,7 +24,7 @@ extension FileManager {
}
} catch {
let error = ImagesError.getFileAttributed(fileURL.relativePath, error.localizedDescription)
- print(error.localizedDescription)
+ print(error.description)
Images.exit(withError: error)
}
}
@@ -35,7 +35,7 @@ extension FileManager {
var files = [String]()
guard let enumerator = self.enumerator(at: URL(string: directory)!, includingPropertiesForKeys: [.isDirectoryKey], options: [.skipsHiddenFiles, .skipsPackageDescendants]) else {
let error = ImagesError.unknown("Cannot enumerate imageset directory in \(directory)")
- print(error.localizedDescription)
+ print(error.description)
Images.exit(withError: error)
}
@@ -47,7 +47,7 @@ extension FileManager {
}
} catch {
let error = ImagesError.getFileAttributed(fileURL.relativePath, error.localizedDescription)
- print(error.localizedDescription)
+ print(error.description)
Images.exit(withError: error)
}
}
diff --git a/Sources/ResgenSwift/Images/Generator/ImageExtensionGenerator.swift b/Sources/ResgenSwift/Images/Generator/ImageExtensionGenerator.swift
index 5edce9f..3982723 100644
--- a/Sources/ResgenSwift/Images/Generator/ImageExtensionGenerator.swift
+++ b/Sources/ResgenSwift/Images/Generator/ImageExtensionGenerator.swift
@@ -31,7 +31,7 @@ class ImageExtensionGenerator {
try extensionContent.write(to: extensionFilePathURL, atomically: false, encoding: .utf8)
} catch (let error) {
let error = ImagesError.writeFile(extensionFilePath, error.localizedDescription)
- print(error.localizedDescription)
+ print(error.description)
Images.exit(withError: error)
}
}
diff --git a/Sources/ResgenSwift/Images/Generator/XcassetsGenerator.swift b/Sources/ResgenSwift/Images/Generator/XcassetsGenerator.swift
index 6573c92..6d55599 100644
--- a/Sources/ResgenSwift/Images/Generator/XcassetsGenerator.swift
+++ b/Sources/ResgenSwift/Images/Generator/XcassetsGenerator.swift
@@ -48,7 +48,7 @@ class XcassetsGenerator {
}
}
let error = ImagesError.unknownImageExtension(parsedImage.name)
- print(error.localizedDescription)
+ print(error.description)
Images.exit(withError: error)
}()
@@ -77,7 +77,7 @@ class XcassetsGenerator {
withIntermediateDirectories: true)
} catch {
let error = ImagesError.createAssetFolder(imagesetPath)
- print(error.localizedDescription)
+ print(error.description)
Images.exit(withError: error)
}
}
diff --git a/Sources/ResgenSwift/Images/Images.swift b/Sources/ResgenSwift/Images/Images.swift
index e0264aa..a4ecafa 100644
--- a/Sources/ResgenSwift/Images/Images.swift
+++ b/Sources/ResgenSwift/Images/Images.swift
@@ -82,7 +82,7 @@ struct Images: ParsableCommand {
// Input file
guard fileManager.fileExists(atPath: options.inputFile) else {
let error = ImagesError.fileNotExists(options.inputFile)
- print(error.localizedDescription)
+ print(error.description)
Images.exit(withError: error)
}
@@ -92,7 +92,7 @@ struct Images: ParsableCommand {
// Extension for UIKit and SwiftUI should have different name
guard options.extensionName != options.extensionNameSwiftUI else {
let error = ImagesError.extensionNamesCollision(options.extensionName)
- print(error.localizedDescription)
+ print(error.description)
Images.exit(withError: error)
}
@@ -117,7 +117,7 @@ struct Images: ParsableCommand {
}
let error = ImagesError.rsvgConvertNotFound
- print(error.localizedDescription)
+ print(error.description)
Images.exit(withError: error)
}
}
diff --git a/Sources/ResgenSwift/Images/ImagesError.swift b/Sources/ResgenSwift/Images/ImagesError.swift
index 7f879ee..8dcbc57 100644
--- a/Sources/ResgenSwift/Images/ImagesError.swift
+++ b/Sources/ResgenSwift/Images/ImagesError.swift
@@ -18,34 +18,34 @@ enum ImagesError: Error {
case createAssetFolder(String)
case unknown(String)
- var localizedDescription: String {
+ var description: String {
switch self {
case .extensionNamesCollision(let extensionName):
- return "error:[\(Fonts.toolName)] Error on extension names, extension name and SwiftUI extension name should be different (\(extensionName) is used on both)"
+ return "error: [\(Fonts.toolName)] Error on extension names, extension name and SwiftUI extension name should be different (\(extensionName) is used on both)"
case .inputFolderNotFound(let inputFolder):
- return " error:[\(Images.toolName)] Input folder not found: \(inputFolder)"
+ return "error: [\(Images.toolName)] Input folder not found: \(inputFolder)"
case .fileNotExists(let filename):
- return " error:[\(Images.toolName)] File \(filename) does not exists"
+ return "error: [\(Images.toolName)] File \(filename) does not exists"
case .unknownImageExtension(let filename):
- return " error:[\(Images.toolName)] File \(filename) have an unhandled file extension. Cannot generate image."
+ return "error: [\(Images.toolName)] File \(filename) have an unhandled file extension. Cannot generate image."
case .getFileAttributed(let filename, let errorDescription):
- return " error:[\(Images.toolName)] Getting file attributes of \(filename) failed with error: \(errorDescription)"
+ return "error: [\(Images.toolName)] Getting file attributes of \(filename) failed with error: \(errorDescription)"
case .rsvgConvertNotFound:
- return " error:[\(Images.toolName)] Can't find rsvg-convert (can be installed with 'brew remove imagemagick && brew install imagemagick --with-librsvg')"
+ return "error: [\(Images.toolName)] Can't find rsvg-convert (can be installed with 'brew remove imagemagick && brew install imagemagick --with-librsvg')"
case .writeFile(let subErrorDescription, let filename):
- return " error:[\(Images.toolName)] An error occured while writing content to \(filename): \(subErrorDescription)"
+ return "error: [\(Images.toolName)] An error occured while writing content to \(filename): \(subErrorDescription)"
case .createAssetFolder(let folder):
- return "error:[\(Colors.toolName)] An error occured while creating folder `\(folder)`"
+ return "error: [\(Colors.toolName)] An error occured while creating folder `\(folder)`"
case .unknown(let errorDescription):
- return " error:[\(Images.toolName)] Unknown error: \(errorDescription)"
+ return "error: [\(Images.toolName)] Unknown error: \(errorDescription)"
}
}
}
diff --git a/Sources/ResgenSwift/Strings/Generator/StringsFileGenerator.swift b/Sources/ResgenSwift/Strings/Generator/StringsFileGenerator.swift
index 27edcd9..4fbebfb 100644
--- a/Sources/ResgenSwift/Strings/Generator/StringsFileGenerator.swift
+++ b/Sources/ResgenSwift/Strings/Generator/StringsFileGenerator.swift
@@ -31,7 +31,7 @@ class StringsFileGenerator {
try fileContent.write(to: stringsFilePathURL, atomically: false, encoding: .utf8)
} catch (let error) {
let error = StringiumError.writeFile(error.localizedDescription, stringsFilePath)
- print(error.localizedDescription)
+ print(error.description)
Stringium.exit(withError: error)
}
}
@@ -75,7 +75,7 @@ class StringsFileGenerator {
stringsFileContent += "\"\(definition.name)\" = \"\(translation)\";\n\n"
} else if skipDefinition == false {
let error = StringiumError.langNotDefined(lang, definition.name, definition.reference != nil)
- print(error.localizedDescription)
+ print(error.description)
Stringium.exit(withError: error)
}
}
@@ -101,7 +101,7 @@ class StringsFileGenerator {
try extensionFileContent.write(to: extensionFilePathURL, atomically: false, encoding: .utf8)
} catch (let error) {
let error = StringiumError.writeFile(extensionFilePath, error.localizedDescription)
- print(error.localizedDescription)
+ print(error.description)
Stringium.exit(withError: error)
}
}
diff --git a/Sources/ResgenSwift/Strings/Generator/TagsGenerator.swift b/Sources/ResgenSwift/Strings/Generator/TagsGenerator.swift
index 15dff7f..ee09d73 100644
--- a/Sources/ResgenSwift/Strings/Generator/TagsGenerator.swift
+++ b/Sources/ResgenSwift/Strings/Generator/TagsGenerator.swift
@@ -24,7 +24,7 @@ class TagsGenerator {
try extensionFileContent.write(to: extensionFilePathURL, atomically: false, encoding: .utf8)
} catch (let error) {
let error = StringiumError.writeFile(extensionFilePath, error.localizedDescription)
- print(error.localizedDescription)
+ print(error.description)
Stringium.exit(withError: error)
}
}
diff --git a/Sources/ResgenSwift/Strings/Model/Definition.swift b/Sources/ResgenSwift/Strings/Model/Definition.swift
index b7dbe44..458201d 100644
--- a/Sources/ResgenSwift/Strings/Model/Definition.swift
+++ b/Sources/ResgenSwift/Strings/Model/Definition.swift
@@ -109,7 +109,7 @@ class Definition {
func getNSLocalizedStringProperty(forLang lang: String) -> String {
guard let translation = translations[lang] else {
let error = StringiumError.langNotDefined(lang, name, reference != nil)
- print(error.localizedDescription)
+ print(error.description)
Stringium.exit(withError: error)
}
@@ -132,7 +132,7 @@ class Definition {
func getNSLocalizedStringStaticProperty(forLang lang: String) -> String {
guard let translation = translations[lang] else {
let error = StringiumError.langNotDefined(lang, name, reference != nil)
- print(error.localizedDescription)
+ print(error.description)
Stringium.exit(withError: error)
}
@@ -157,7 +157,7 @@ class Definition {
func getProperty(forLang lang: String) -> String {
guard let translation = translations[lang] else {
let error = StringiumError.langNotDefined(lang, name, reference != nil)
- print(error.localizedDescription)
+ print(error.description)
Stringium.exit(withError: error)
}
@@ -173,7 +173,7 @@ class Definition {
func getStaticProperty(forLang lang: String) -> String {
guard let translation = translations[lang] else {
let error = StringiumError.langNotDefined(lang, name, reference != nil)
- print(error.localizedDescription)
+ print(error.description)
Stringium.exit(withError: error)
}
diff --git a/Sources/ResgenSwift/Strings/Parser/TwineFileParser.swift b/Sources/ResgenSwift/Strings/Parser/TwineFileParser.swift
index 55b4f08..b7f6803 100644
--- a/Sources/ResgenSwift/Strings/Parser/TwineFileParser.swift
+++ b/Sources/ResgenSwift/Strings/Parser/TwineFileParser.swift
@@ -84,7 +84,7 @@ class TwineFileParser {
}
}
if invalidDefinitionNames.count > 0 {
- print(" warning:[\(Stringium.toolName)] Found \(invalidDefinitionNames.count) definition (\(invalidDefinitionNames.joined(separator: ", "))")
+ print("warning: [\(Stringium.toolName)] Found \(invalidDefinitionNames.count) definition (\(invalidDefinitionNames.joined(separator: ", "))")
}
return sections
diff --git a/Sources/ResgenSwift/Strings/Stringium/Stringium.swift b/Sources/ResgenSwift/Strings/Stringium/Stringium.swift
index ca750c8..d497e00 100644
--- a/Sources/ResgenSwift/Strings/Stringium/Stringium.swift
+++ b/Sources/ResgenSwift/Strings/Stringium/Stringium.swift
@@ -70,20 +70,20 @@ struct Stringium: ParsableCommand {
// Input file
guard fileManager.fileExists(atPath: options.inputFile) else {
let error = StringiumError.fileNotExists(options.inputFile)
- print(error.localizedDescription)
+ print(error.description)
Stringium.exit(withError: error)
}
// Langs
guard options.langs.isEmpty == false else {
let error = StringiumError.langsListEmpty
- print(error.localizedDescription)
+ print(error.description)
Stringium.exit(withError: error)
}
guard options.langs.contains(options.defaultLang) else {
let error = StringiumError.defaultLangsNotInLangs
- print(error.localizedDescription)
+ print(error.description)
Stringium.exit(withError: error)
}
diff --git a/Sources/ResgenSwift/Strings/Stringium/StringiumError.swift b/Sources/ResgenSwift/Strings/Stringium/StringiumError.swift
index 852d7ec..ba12a82 100644
--- a/Sources/ResgenSwift/Strings/Stringium/StringiumError.swift
+++ b/Sources/ResgenSwift/Strings/Stringium/StringiumError.swift
@@ -14,25 +14,25 @@ enum StringiumError: Error {
case writeFile(String, String)
case langNotDefined(String, String, Bool)
- var localizedDescription: String {
+ var description: String {
switch self {
case .fileNotExists(let filename):
- return " error:[\(Stringium.toolName)] File \(filename) does not exists "
+ return "error: [\(Stringium.toolName)] File \(filename) does not exists "
case .langsListEmpty:
- return " error:[\(Stringium.toolName)] Langs list is empty"
+ return "error: [\(Stringium.toolName)] Langs list is empty"
case .defaultLangsNotInLangs:
- return " error:[\(Stringium.toolName)] Langs list does not contains the default lang"
+ return "error: [\(Stringium.toolName)] Langs list does not contains the default lang"
case .writeFile(let subErrorDescription, let filename):
- return " error:[\(Stringium.toolName)] An error occured while writing content to \(filename): \(subErrorDescription)"
+ return "error: [\(Stringium.toolName)] An error occured while writing content to \(filename): \(subErrorDescription)"
case .langNotDefined(let lang, let definitionName, let isReference):
if isReference {
- return " error:[\(Stringium.toolName)] Reference are handled only by TwineTool. Please use it or remove reference from you strings file."
+ return "error: [\(Stringium.toolName)] Reference are handled only by Twine. Please use it or remove reference from you strings file."
}
- return " error:[\(Stringium.toolName)] Lang \"\(lang)\" not found for \"\(definitionName)\""
+ return "error: [\(Stringium.toolName)] Lang \"\(lang)\" not found for \"\(definitionName)\""
}
}
}
diff --git a/Sources/ResgenSwift/Strings/Tag/Tags.swift b/Sources/ResgenSwift/Strings/Tag/Tags.swift
index 5e53208..7fedafa 100644
--- a/Sources/ResgenSwift/Strings/Tag/Tags.swift
+++ b/Sources/ResgenSwift/Strings/Tag/Tags.swift
@@ -62,7 +62,7 @@ struct Tags: ParsableCommand {
// Input file
guard fileManager.fileExists(atPath: options.inputFile) else {
let error = StringiumError.fileNotExists(options.inputFile)
- print(error.localizedDescription)
+ print(error.description)
Stringium.exit(withError: error)
}
diff --git a/Sources/ResgenSwift/Strings/Twine/Twine.swift b/Sources/ResgenSwift/Strings/Twine/Twine.swift
index 2a48bac..7af478d 100644
--- a/Sources/ResgenSwift/Strings/Twine/Twine.swift
+++ b/Sources/ResgenSwift/Strings/Twine/Twine.swift
@@ -66,20 +66,20 @@ struct Twine: ParsableCommand {
// Input file
guard fileManager.fileExists(atPath: options.inputFile) else {
let error = TwineError.fileNotExists(options.inputFile)
- print(error.localizedDescription)
+ print(error.description)
Twine.exit(withError: error)
}
// Langs
guard options.langs.isEmpty == false else {
let error = TwineError.langsListEmpty
- print(error.localizedDescription)
+ print(error.description)
Twine.exit(withError: error)
}
guard options.langs.contains(options.defaultLang) else {
let error = TwineError.defaultLangsNotInLangs
- print(error.localizedDescription)
+ print(error.description)
Twine.exit(withError: error)
}
diff --git a/Sources/ResgenSwift/Strings/Twine/TwineError.swift b/Sources/ResgenSwift/Strings/Twine/TwineError.swift
index 291f371..82ed17f 100644
--- a/Sources/ResgenSwift/Strings/Twine/TwineError.swift
+++ b/Sources/ResgenSwift/Strings/Twine/TwineError.swift
@@ -12,16 +12,16 @@ enum TwineError: Error {
case langsListEmpty
case defaultLangsNotInLangs
- var localizedDescription: String {
+ var description: String {
switch self {
case .fileNotExists(let filename):
- return " error:[\(Twine.toolName)] File \(filename) does not exists "
+ return "error: [\(Twine.toolName)] File \(filename) does not exists "
case .langsListEmpty:
- return " error:[\(Twine.toolName)] Langs list is empty"
+ return "error: [\(Twine.toolName)] Langs list is empty"
case .defaultLangsNotInLangs:
- return " error:[\(Twine.toolName)] Langs list does not contains the default lang"
+ return "error: [\(Twine.toolName)] Langs list does not contains the default lang"
}
}
}
diff --git a/Sources/ToolCore/Version.swift b/Sources/ToolCore/Version.swift
index 11adb0e..b850b78 100644
--- a/Sources/ToolCore/Version.swift
+++ b/Sources/ToolCore/Version.swift
@@ -7,4 +7,4 @@
import Foundation
-public let ResgenSwiftVersion = "1.1"
+public let ResgenSwiftVersion = "1.2"