Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Sources/BartyCrouchKit/OldCommandLine/CodeCommander.swift
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public final class CodeCommander {
let files = try findFiles(in: codeDirectoryPath, subpathsToIgnore: subpathsToIgnore)
let customFunctionArgs = customFunction != nil ? ["-s", "\(customFunction!)"] : []

let argumentsWithoutTheFiles = ["extractLocStrings"] + ["-o", stringsFilePath] + customFunctionArgs + ["-q"]
let argumentsWithoutTheFiles = ["extractLocStrings"] + ["-o", stringsFilePath] + customFunctionArgs + ["-q"] + ["-a"]

let arguments = try appendFiles(
files,
Expand Down
83 changes: 39 additions & 44 deletions Sources/BartyCrouchKit/OldCommandLine/CommandLineActor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -308,21 +308,22 @@ public class CommandLineActor {
usePlistArguments: Bool,
ignoreKeys: [String]
) {
for inputDirectoryPath in inputDirectoryPaths {
let extractedStringsFileDirectory = inputDirectoryPath + "/tmpstrings/"
let extractedStringsFileDirectory = NSTemporaryDirectory()
let extractedLocalizableStringsFilePath = extractedStringsFileDirectory + "Localizable.strings"

do {
try FileManager.default.createDirectory(
atPath: extractedStringsFileDirectory,
withIntermediateDirectories: true,
attributes: nil
)
}
catch {
print(error.localizedDescription, level: .error)
return
}
do {
try FileManager.default.createDirectory(
atPath: extractedStringsFileDirectory,
withIntermediateDirectories: true,
attributes: nil
)
}
catch {
print(error.localizedDescription, level: .error)
return
}

for inputDirectoryPath in inputDirectoryPaths {
do {
try CodeCommander.shared.export(
stringsFilesToPath: extractedStringsFileDirectory,
Expand All @@ -331,47 +332,41 @@ public class CommandLineActor {
usePlistArguments: usePlistArguments,
subpathsToIgnore: subpathsToIgnore
)
print("Successfully updated strings file(s) of Code files.", level: .success, file: inputDirectoryPath)
}
catch {
print("Could not extract strings from Code in directory '\(inputDirectoryPath)'.", level: .error)
return
}
}

let extractedLocalizableStringsFilePath = extractedStringsFileDirectory + "Localizable.strings"
guard FileManager.default.fileExists(atPath: extractedLocalizableStringsFilePath) else {
print("No localizations extracted from Code in directory '\(inputDirectoryPath)'.", level: .warning)

// BUGFIX: Remove empty /tmpstrings/ folder again.
try? FileManager.default.removeItem(atPath: extractedStringsFileDirectory)

return // NOTE: Expecting to see this only for empty project situations.
}
guard FileManager.default.fileExists(atPath: extractedLocalizableStringsFilePath) else {
print("No localizations extracted from Code.", level: .warning)
return // NOTE: Expecting to see this only for empty project situations.
}

for outputStringsFilePath in outputStringsFilePaths {
guard let stringsFileUpdater = StringsFileUpdater(path: outputStringsFilePath) else { continue }

stringsFileUpdater.incrementallyUpdateKeys(
withStringsFileAtPath: extractedLocalizableStringsFilePath,
addNewValuesAsEmpty: !defaultToKeys,
ignoreBaseKeysAndComment: ignoreKeys,
override: override,
keepExistingKeys: additive,
overrideComments: overrideComments,
keepWhitespaceSurroundings: unstripped
)
for outputStringsFilePath in outputStringsFilePaths {
guard let stringsFileUpdater = StringsFileUpdater(path: outputStringsFilePath) else { continue }

if verbose { print("Incrementally updated keys of file '\(outputStringsFilePath)'.", level: .info) }
}
stringsFileUpdater.incrementallyUpdateKeys(
withStringsFileAtPath: extractedLocalizableStringsFilePath,
addNewValuesAsEmpty: !defaultToKeys,
ignoreBaseKeysAndComment: ignoreKeys,
override: override,
keepExistingKeys: additive,
overrideComments: overrideComments,
keepWhitespaceSurroundings: unstripped
)

do {
try FileManager.default.removeItem(atPath: extractedStringsFileDirectory)
}
catch {
print("Temporary strings files couldn't be deleted at path '\(extractedStringsFileDirectory)'", level: .error)
return
}
if verbose { print("Incrementally updated keys of file '\(outputStringsFilePath)'.", level: .info) }
}

print("Successfully updated strings file(s) of Code files.", level: .success, file: inputDirectoryPath)
do {
try FileManager.default.removeItem(atPath: extractedLocalizableStringsFilePath)
}
catch {
print("Temporary strings files couldn't be deleted at path '\(extractedLocalizableStringsFilePath)'", level: .error)
return
}
}

Expand Down