Skip to content

Commit 335befa

Browse files
unnameddthomaspaulmann
authored andcommitted
Introduce DataManager to the Core
1 parent e9775df commit 335befa

File tree

7 files changed

+33
-46
lines changed

7 files changed

+33
-46
lines changed

Tools/Toolkit/Sources/Toolkit/SubCommands/GenerateDocumentation.swift

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
import ArgumentParser
77
import ToolkitLibrary
8-
import TSCBasic
98

109
extension ToolkitCommand {
1110
struct GenerateDocumentation: ParsableCommand {
@@ -23,13 +22,16 @@ extension ToolkitCommand {
2322
var outputJSONFilename: String = "extensions.json"
2423

2524
func run() throws {
26-
let fileSystem = TSCBasic.localFileSystem
27-
2825
do {
26+
let dataManager = try DataManager(
27+
extensionsPath: path,
28+
extensionsFilename: outputJSONFilename
29+
)
30+
2931
let toolkit = Toolkit(
30-
path: fileSystem.absolutePath(for: path)
32+
dataManager: dataManager
3133
)
32-
34+
3335
try toolkit.generateDocumentation(
3436
outputJSONFilename: outputJSONFilename,
3537
outputMarkdownFilename: outputMarkdownFilename

Tools/Toolkit/Sources/Toolkit/SubCommands/Report.swift

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import ArgumentParser
77
import SwiftUI
88
import ToolkitLibrary
9-
import TSCBasic
109

1110
extension ToolkitCommand {
1211
struct Report: ParsableCommand {
@@ -32,11 +31,13 @@ extension ToolkitCommand {
3231
var noColor: Bool = false
3332

3433
func run() throws {
35-
let fileSystem = TSCBasic.localFileSystem
36-
3734
do {
35+
let dataManager = try DataManager(
36+
extensionsPath: path
37+
)
38+
3839
let toolkit = Toolkit(
39-
path: fileSystem.absolutePath(for: path)
40+
dataManager: dataManager
4041
)
4142

4243
try toolkit.report(

Tools/Toolkit/Sources/Toolkit/SubCommands/SetExecutable.swift

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
import ArgumentParser
77
import ToolkitLibrary
8-
import TSCBasic
98

109
extension ToolkitCommand {
1110
struct SetExecutable: ParsableCommand {
@@ -17,11 +16,13 @@ extension ToolkitCommand {
1716
var path: String = "./commands"
1817

1918
func run() throws {
20-
let fileSystem = TSCBasic.localFileSystem
21-
2219
do {
20+
let dataManager = try DataManager(
21+
extensionsPath: path
22+
)
23+
2324
let toolkit = Toolkit(
24-
path: fileSystem.absolutePath(for: path)
25+
dataManager: dataManager
2526
)
2627

2728
try toolkit.setScriptCommandsAsExecutable()

Tools/Toolkit/Sources/ToolkitLibrary/Core/Toolkit/Toolkit+GenerateDocumentation.swift

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,23 @@ import Foundation
77
import TSCBasic
88

99
extension Toolkit {
10-
public func generateDocumentation(outputJSONFilename: String, outputMarkdownFilename: String) throws {
11-
guard fileSystem.exists(extensionsAbsolutePath) else {
12-
throw Error.extensionsFolderNotFound(extensionsAbsolutePath.pathString)
13-
}
14-
15-
var data = RaycastData()
16-
10+
public func generateDocumentation(outputJSONFilename: String, outputMarkdownFilename: String) throws {
11+
dataManager.loadContent()
12+
1713
try readFolderContent(
18-
path: extensionsAbsolutePath,
19-
parentGroups: &data.groups,
14+
path: dataManager.extensionsPath,
15+
parentGroups: &dataManager.data.groups,
2016
ignoreFilesInDir: true
2117
)
2218

23-
data.totalScriptCommands = totalScriptCommands
24-
2519
let documentation = Documentation(
26-
path: extensionsAbsolutePath,
20+
path: dataManager.extensionsPath,
2721
jsonFilename: outputJSONFilename,
2822
markdownFilename: outputMarkdownFilename
2923
)
3024

3125
try documentation.generateDocuments(
32-
for: data
26+
for: dataManager.data
3327
)
3428
}
3529
}

Tools/Toolkit/Sources/ToolkitLibrary/Core/Toolkit/Toolkit+Mode.swift

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,10 @@ import TSCBasic
88

99
extension Toolkit {
1010
public func setScriptCommandsAsExecutable() throws {
11-
guard fileSystem.exists(extensionsAbsolutePath) else {
12-
throw Error.extensionsFolderNotFound(extensionsAbsolutePath.pathString)
13-
}
14-
1511
var data = RaycastData()
1612

1713
try readFolderContent(
18-
path: extensionsAbsolutePath,
14+
path: dataManager.extensionsPath,
1915
parentGroups: &data.groups,
2016
ignoreFilesInDir: true
2117
)
@@ -34,7 +30,7 @@ extension Toolkit {
3430
var newModeCount = 0
3531

3632
scriptCommands.sorted().forEach { scriptCommand in
37-
let filePath = extensionsAbsolutePath.appending(RelativePath(scriptCommand.fullPath))
33+
let filePath = dataManager.extensionsPath.appending(RelativePath(scriptCommand.fullPath))
3834

3935
if let _ = try? fileSystem.chmod(.executable, path: filePath) {
4036
newModeCount += 1

Tools/Toolkit/Sources/ToolkitLibrary/Core/Toolkit/Toolkit+Report.swift

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,15 @@ import TSCBasic
88

99
extension Toolkit {
1010
public func report(type: ReportType, noColor: Bool) throws {
11-
guard fileSystem.exists(extensionsAbsolutePath) else {
12-
throw Error.extensionsFolderNotFound(extensionsAbsolutePath.pathString)
13-
}
14-
15-
var data = RaycastData()
1611

1712
try readFolderContent(
18-
path: extensionsAbsolutePath,
19-
parentGroups: &data.groups,
13+
path: dataManager.extensionsPath,
14+
parentGroups: &dataManager.data.groups,
2015
ignoreFilesInDir: true
2116
)
2217

2318
let report = Report(
24-
data: data,
19+
data: dataManager.data,
2520
type: type,
2621
noColor: noColor
2722
)

Tools/Toolkit/Sources/ToolkitLibrary/Core/Toolkit/Toolkit.swift

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,11 @@ import TSCBasic
99
public final class Toolkit {
1010
lazy var fileSystem = TSCBasic.localFileSystem
1111

12-
var extensionsAbsolutePath: AbsolutePath
13-
14-
var totalScriptCommands: Int = 0
12+
var dataManager: DataManager
1513

1614
let git = GitShell()
17-
18-
public init(path: AbsolutePath) {
19-
extensionsAbsolutePath = path
15+
16+
public init(dataManager: DataManager) {
17+
self.dataManager = dataManager
2018
}
2119
}

0 commit comments

Comments
 (0)