Skip to content

Commit d51ccc5

Browse files
Merge pull request #17 from justeattakeaway/feature/add-quiet-flag
Add `--quiet` flag to suppress output
2 parents 40fd8e1 + dd6e236 commit d51ccc5

File tree

4 files changed

+29
-8
lines changed

4 files changed

+29
-8
lines changed

Sources/Commands/GeneratePackage.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ struct GeneratePackage: AsyncParsableCommand {
2323

2424
@Option(name: .long, help: "Allowed shared local dependencies. Can be specified multiple times.")
2525
var allowedSharedLocalDependencies: [String] = []
26+
27+
@Flag(name: .long, help: "Suppress output.")
28+
var quiet: Bool = false
2629

2730
private var fileManager: FileManager { .default }
2831

@@ -32,7 +35,8 @@ struct GeneratePackage: AsyncParsableCommand {
3235
packageDependenciesUrl: URL(filePath: packageDependencies, directoryHint: .notDirectory),
3336
dependencyFinder: DependencyFinder(fileManager: fileManager),
3437
writer: Writer(),
35-
fileManager: fileManager
38+
fileManager: fileManager,
39+
quiet: quiet
3640
)
3741
let dependencyTreatment: Generator.DependencyTreatment = try {
3842
if cachingFlags.dependenciesAsBinaryTargets {

Sources/Commands/GenerateTuistPackage.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ struct GenerateTuistPackage: AsyncParsableCommand {
2424
@Option(name: .long, help: "Path to a folder containing the modules in individual folders (default to 'Modules'). Relative to the root of the repository. Required if targetDependencies contains local dependencies.")
2525
var modulesRelativePath: String = "Modules"
2626

27+
@Flag(name: .long, help: "Suppress output.")
28+
var quiet: Bool = false
29+
2730
private var fileManager: FileManager { .default }
2831

2932
func run() async throws {
@@ -32,7 +35,8 @@ struct GenerateTuistPackage: AsyncParsableCommand {
3235
packageDependenciesUrl: URL(filePath: packageDependencies, directoryHint: .notDirectory),
3336
dependencyFinder: DependencyFinder(fileManager: fileManager),
3437
writer: Writer(),
35-
fileManager: fileManager
38+
fileManager: fileManager,
39+
quiet: quiet
3640
)
3741
let outputPath = URL(filePath: output, directoryHint: .notDirectory)
3842
let targetDependenciesUrl = URL(filePath: targetDependencies, directoryHint: .notDirectory)

Sources/Core/Generator.swift

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,15 @@ struct Generator {
1919

2020
private let writer: Writing
2121
private let fileManager: FileManager
22-
23-
init(templateUrl: URL, packageDependenciesUrl: URL, dependencyFinder: DependencyFinding, writer: Writing, fileManager: FileManager) {
22+
private let printer: Printer
23+
24+
init(templateUrl: URL, packageDependenciesUrl: URL, dependencyFinder: DependencyFinding, writer: Writing, fileManager: FileManager, quiet: Bool = false) {
2425
self.templateUrl = templateUrl
2526
self.packageDependenciesUrl = packageDependenciesUrl
2627
self.dependencyFinder = dependencyFinder
2728
self.writer = writer
2829
self.fileManager = fileManager
30+
self.printer = Printer(quiet: quiet)
2931
}
3032

3133
@discardableResult
@@ -45,13 +47,13 @@ struct Generator {
4547
folder: outputUrl,
4648
filename: filename
4749
)
48-
print("✅ File successfully saved at \(outputFilePath.path).")
50+
printer.print("✅ File successfully saved at \(outputFilePath.path).")
4951

5052
switch dependencyTreatment {
5153
case .standard:
5254
return outputFilePath
5355
case .binaryTargets(let relativeDependenciesPath, let versionRefsPath, let exclusions):
54-
print("✅ Converting \(outputFilePath) to use dependencies as binary targets.")
56+
printer.print("✅ Converting \(outputFilePath) to use dependencies as binary targets.")
5557
let packageConvertor = PackageConvertor()
5658
let convertedSpec = try await packageConvertor.convertDependenciesToBinaryTargets(
5759
dependencyFinder: dependencyFinder,
@@ -71,7 +73,7 @@ struct Generator {
7173
folder: outputUrl,
7274
filename: filename
7375
)
74-
print("✅ File successfully updated at \(path).")
76+
printer.print("✅ File successfully updated at \(path).")
7577
return path
7678
}
7779
}
@@ -98,7 +100,7 @@ struct Generator {
98100
folder: outputUrl,
99101
filename: Constants.packageFile
100102
)
101-
print("✅ File successfully saved at \(outputFilePath.path).")
103+
printer.print("✅ File successfully saved at \(outputFilePath.path).")
102104
return outputFilePath
103105
}
104106
}

Sources/Core/Printer.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// Printer.swift
2+
3+
struct Printer {
4+
let quiet: Bool
5+
6+
func print(_ message: String) {
7+
if !quiet {
8+
Swift.print(message)
9+
}
10+
}
11+
}

0 commit comments

Comments
 (0)