diff options
Diffstat (limited to 'Sources/Main.swift')
| -rw-r--r-- | Sources/Main.swift | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Sources/Main.swift b/Sources/Main.swift new file mode 100644 index 0000000..9ffff7e --- /dev/null +++ b/Sources/Main.swift @@ -0,0 +1,30 @@ +import ArgumentParser +import Foundation +import Logging +import ServiceLifecycle +import SystemPackage + +@main +struct EntryPoint: AsyncParsableCommand { + @Option(help: "Directory to search for ongoing downloads.", transform: { FilePath($0) }) + var directory = FilePath("\(NSHomeDirectory())/Downloads") + + @Option(help: "Suffix of ongoing downloads.") + var suffix = "part" + + @Flag(help: "Enable verbose output.") + var verbose = false + + func run() async throws { + var logger = Logger(label: "caffeinate-downloads") + if self.verbose { + logger.logLevel = .debug + } + + try await ServiceGroup( + services: [Watcher(directory: self.directory, logger: logger, suffix: self.suffix)], + cancellationSignals: [.sigint, .sigquit], + logger: logger + ).run() + } +} |
