diff --git a/Sources/Executable/Colibri.swift b/Sources/Executable/Colibri.swift index 02690d1..a27ae37 100644 --- a/Sources/Executable/Colibri.swift +++ b/Sources/Executable/Colibri.swift @@ -1,13 +1,13 @@ import ArgumentParser -import ColibriLibrary @main struct Colibri: AsyncParsableCommand { - // MARK: Functions - - func run() async throws { - // ... - } + // MARK: Properties + + static let configuration = CommandConfiguration( + abstract: "The utility to manage your Hummingbird projects", + subcommands: [Create.self] + ) } diff --git a/Sources/Executable/Commands/Create.swift b/Sources/Executable/Commands/Create.swift new file mode 100644 index 0000000..d65c947 --- /dev/null +++ b/Sources/Executable/Commands/Create.swift @@ -0,0 +1,41 @@ +import ArgumentParser +import ColibriLibrary + +extension Colibri { + struct Create: AsyncParsableCommand { + + // MARK: Properties + + static let configuration = CommandConfiguration( + commandName: "create project", + abstract: "Create a new, tailored Colibri project.", + helpNames: .shortAndLong, + aliases: ["create"] + ) + + @OptionGroup var options: Options + + // MARK: Functions + + mutating func run() async throws { + + } + + } +} + +// MARK: - Options + +extension Colibri.Create { + struct Options: ParsableArguments { + + // MARK: Properties + + @Option(name: .shortAndLong) + var name: String + + @Option(name: .shortAndLong) + var location: String? + + } +} diff --git a/Tests/Library/Helpers/Extensions/URL+Samples.swift b/Tests/Library/Helpers/Extensions/URL+Samples.swift index 1d0622a..83c9f6a 100644 --- a/Tests/Library/Helpers/Extensions/URL+Samples.swift +++ b/Tests/Library/Helpers/Extensions/URL+Samples.swift @@ -11,6 +11,6 @@ extension URL { static let someExistingFile = URL(at: "/some/existing/file") static let someNewFolder = URL(at: "/some/new/folder") static let someNewFile = URL(at: "/some/new/file") - static let someRandomURL = URL(string: "some.random.url")! + static let someRandomURL = URL(string: "http://some.random.url")! }