diff --git a/Sources/tart/Commands/FQN.swift b/Sources/tart/Commands/FQN.swift new file mode 100644 index 0000000..0fd7f06 --- /dev/null +++ b/Sources/tart/Commands/FQN.swift @@ -0,0 +1,22 @@ +import ArgumentParser +import Foundation +import SystemConfiguration + +struct FQN: AsyncParsableCommand { + static var configuration = CommandConfiguration(abstract: "Get a fully-qualified VM name", shouldDisplay: false) + + @Argument(help: "VM name") + var name: String + + func run() async throws { + if var remoteName = try? RemoteName(name) { + let digest = try VMStorageOCI().digest(remoteName) + + remoteName.reference = Reference(digest: digest) + + print(remoteName) + } else { + print(name) + } + } +} diff --git a/Sources/tart/Root.swift b/Sources/tart/Root.swift index e934596..1be21f1 100644 --- a/Sources/tart/Root.swift +++ b/Sources/tart/Root.swift @@ -26,6 +26,7 @@ struct Root: AsyncParsableCommand { Rename.self, Stop.self, Delete.self, + FQN.self, ]) public static func main() async throws {