diff --git a/Sources/Container-Compose/Application.swift b/Sources/Container-Compose/Application.swift index 8327a0ab..774e5d56 100644 --- a/Sources/Container-Compose/Application.swift +++ b/Sources/Container-Compose/Application.swift @@ -10,11 +10,18 @@ import ArgumentParser @main struct Main: AsyncParsableCommand { + private static let commandName: String = "container-compose" + private static let version: String = "v0.5.1" + static var versionString: String { + "\(commandName) version \(version)" + } static let configuration: CommandConfiguration = .init( - commandName: "container-compose", + commandName: Self.commandName, abstract: "A tool to use manage Docker Compose files with Apple Container", + version: Self.versionString, subcommands: [ ComposeUp.self, - ComposeDown.self + ComposeDown.self, + Version.self ]) } diff --git a/Sources/Container-Compose/Commands/Version.swift b/Sources/Container-Compose/Commands/Version.swift new file mode 100644 index 00000000..164394fc --- /dev/null +++ b/Sources/Container-Compose/Commands/Version.swift @@ -0,0 +1,37 @@ +//===----------------------------------------------------------------------===// +// Copyright © 2025 Apple Inc. and the container project authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//===----------------------------------------------------------------------===// + +// +// Version.swift +// Container-Compose +// +// Created by Container Compose Contributors +// + +import ArgumentParser +import Foundation + +struct Version: ParsableCommand { + + static let configuration: CommandConfiguration = .init( + commandName: "version", + abstract: "Display the version information" + ) + + func run() { + print("\(Main.versionString)") + } +}