mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
38 lines
1.5 KiB
Swift
Executable file
38 lines
1.5 KiB
Swift
Executable file
#!/usr/bin/env xcrun swift
|
|
|
|
import Foundation
|
|
|
|
// The way this works is:
|
|
// • Run the AbandonedStrings executable (see https://www.avanderlee.com/xcode/unused-localized-strings/)
|
|
// • Paste the list of unused strings below
|
|
// • Run this script by doing:
|
|
// swiftc remove_unused_strings.swift
|
|
// ./remove_unused_strings
|
|
|
|
let unusedStringKeys = [
|
|
|
|
]
|
|
|
|
let allFileURLs = try! FileManager.default.contentsOfDirectory(at: URL(string: "./")!, includingPropertiesForKeys: nil)
|
|
let translationFiles = allFileURLs.map { $0.lastPathComponent }.filter { $0.hasSuffix(".lproj") }
|
|
|
|
for translationFile in translationFiles {
|
|
let contents = try! String(contentsOfFile: "\(translationFile)/Localizable.strings")
|
|
let lines = contents.split(separator: "\n")
|
|
var filteredLines0: [String] = []
|
|
for line in lines {
|
|
if !unusedStringKeys.contains(where: { line.hasPrefix("\"\($0)\"") }) {
|
|
filteredLines0.append(String(line))
|
|
}
|
|
}
|
|
var filteredLines1: [String] = []
|
|
for (index, line) in filteredLines0.enumerated() {
|
|
if line.hasPrefix("/*") && index != (filteredLines0.count - 1) && filteredLines0[index + 1].hasPrefix("/*") {
|
|
// Orphaned comment; drop it
|
|
} else {
|
|
filteredLines1.append(line)
|
|
}
|
|
}
|
|
let newContents = filteredLines1.joined(separator: "\n")
|
|
try newContents.write(to: URL(fileURLWithPath: "\(FileManager.default.currentDirectoryPath)/\(translationFile)/Localizable.strings"), atomically: true, encoding: String.Encoding.utf8)
|
|
}
|