Ci error fix.

This commit is contained in:
Serhii Londar
2019-06-02 20:47:24 +03:00
parent 8f1d2b9308
commit f4293c7910
3 changed files with 6987 additions and 7394 deletions

80
.github/main.swift vendored
View File

@@ -212,55 +212,59 @@ class ReadmeGenerator {
func generateReadme() {
print("Start")
guard let applicationsData = try? Data(contentsOf: URL(fileURLWithPath: FilePaths.applications.rawValue)) else { return }
guard let categoriesData = try? Data(contentsOf: URL(fileURLWithPath: FilePaths.categories.rawValue)) else { return }
let jsonDecoder = JSONDecoder()
guard let applicationsObject = try? jsonDecoder.decode(JSONApplications.self, from: applicationsData) else { return }
guard let categoriesObject = try? jsonDecoder.decode(Categories.self, from: categoriesData) else { return }
var categories = categoriesObject.categories
let subcategories = categories.filter({ $0.parent != nil && !$0.parent!.isEmpty })
let applications = applicationsObject.applications
for subcategory in subcategories {
if let index = categories.lastIndex(where: { $0.parent != subcategory.id }) {
categories.remove(at: index)
}
}
categories = categories.sorted(by: { $0.title < $1.title })
readmeString.append(header)
print("Start iteration....")
for category in categories {
readmeString.append(String.enter + String.section + String.space + category.title + String.enter)
var categoryApplications = applications.filter({ $0.categories.contains(category.id) })
categoryApplications = categoryApplications.sorted(by: { $0.title < $1.title })
do {
let applicationsData = try Data(contentsOf: URL(fileURLWithPath: FilePaths.applications.rawValue))
let categoriesData = try Data(contentsOf: URL(fileURLWithPath: FilePaths.categories.rawValue))
let jsonDecoder = JSONDecoder()
let applicationsObject = try jsonDecoder.decode(JSONApplications.self, from: applicationsData)
let categoriesObject = try jsonDecoder.decode(Categories.self, from: categoriesData)
for application in categoryApplications {
readmeString.append(application.markdownDescription())
readmeString.append(String.enter)
}
var categories = categoriesObject.categories
let subcategories = categories.filter({ $0.parent != nil && !$0.parent!.isEmpty })
let applications = applicationsObject.applications
var subcategories = subcategories.filter({ $0.parent == category.id })
guard subcategories.count > 0 else { continue }
subcategories = subcategories.sorted(by: { $0.title < $1.title })
for subcategory in subcategories {
readmeString.append(String.enter + String.subsection + String.space + subcategory.title + String.enter)
var categoryApplications = applications.filter({ $0.categories.contains(subcategory.id) })
if let index = categories.lastIndex(where: { $0.parent != subcategory.id }) {
categories.remove(at: index)
}
}
categories = categories.sorted(by: { $0.title < $1.title })
readmeString.append(header)
print("Start iteration....")
for category in categories {
readmeString.append(String.enter + String.section + String.space + category.title + String.enter)
var categoryApplications = applications.filter({ $0.categories.contains(category.id) })
categoryApplications = categoryApplications.sorted(by: { $0.title < $1.title })
for application in categoryApplications {
readmeString.append(application.markdownDescription())
readmeString.append(String.enter)
}
var subcategories = subcategories.filter({ $0.parent == category.id })
guard subcategories.count > 0 else { continue }
subcategories = subcategories.sorted(by: { $0.title < $1.title })
for subcategory in subcategories {
readmeString.append(String.enter + String.subsection + String.space + subcategory.title + String.enter)
var categoryApplications = applications.filter({ $0.categories.contains(subcategory.id) })
categoryApplications = categoryApplications.sorted(by: { $0.title < $1.title })
for application in categoryApplications {
readmeString.append(application.markdownDescription())
readmeString.append(String.enter)
}
}
}
print("Finish iteration...")
readmeString.append(footer)
try readmeString.data(using: .utf8)?.write(to: URL(fileURLWithPath: FilePaths.readme.rawValue))
print("Finish")
} catch {
print(error)
}
print("Finish iteration...")
readmeString.append(footer)
try? readmeString.data(using: .utf8)?.write(to: URL(fileURLWithPath: FilePaths.readme.rawValue))
print("Finish")
}
}