Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 6 additions & 11 deletions Sources/CLI/Container/ContainerCreate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -48,17 +48,12 @@ extension Application {
var global: Flags.Global

func run() async throws {
var progressConfig: ProgressConfig
if managementFlags.disableProgressUpdates {
progressConfig = try ProgressConfig(disableProgressUpdates: managementFlags.disableProgressUpdates)
} else {
progressConfig = try ProgressConfig(
showTasks: true,
showItems: true,
ignoreSmallSize: true,
totalTasks: 3
)
}
let progressConfig = try ProgressConfig(
showTasks: true,
showItems: true,
ignoreSmallSize: true,
totalTasks: 3
)
let progress = ProgressBar(config: progressConfig)
defer {
progress.finish()
Expand Down
25 changes: 18 additions & 7 deletions Sources/CLI/Image/ImagePull.swift
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,19 @@ extension Application {
@OptionGroup
var registry: Flags.Registry

@OptionGroup
var progressFlags: Flags.Progress

@Option(help: "Platform string in the form 'os/arch/variant'. Example 'linux/arm64/v8', 'linux/amd64'") var platform: String?

@Argument var reference: String

init() {}

init(platform: String? = nil, scheme: String = "auto", reference: String) {
init(platform: String? = nil, scheme: String = "auto", reference: String, disableProgress: Bool = false) {
self.global = Flags.Global()
self.registry = Flags.Registry(scheme: scheme)
self.progressFlags = Flags.Progress(disableProgressUpdates: disableProgress)
self.platform = platform
self.reference = reference
}
Expand All @@ -56,12 +60,19 @@ extension Application {
let scheme = try RequestScheme(registry.scheme)

let processedReference = try ClientImage.normalizeReference(reference)
let progressConfig = try ProgressConfig(
showTasks: true,
showItems: true,
ignoreSmallSize: true,
totalTasks: 2
)

var progressConfig: ProgressConfig
if self.progressFlags.disableProgressUpdates {
progressConfig = try ProgressConfig(disableProgressUpdates: self.progressFlags.disableProgressUpdates)
} else {
progressConfig = try ProgressConfig(
showTasks: true,
showItems: true,
ignoreSmallSize: true,
totalTasks: 2
)
}

let progress = ProgressBar(config: progressConfig)
defer {
progress.finish()
Expand Down
22 changes: 15 additions & 7 deletions Sources/CLI/Image/ImagePush.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ extension Application {
@OptionGroup
var registry: Flags.Registry

@OptionGroup
var progressFlags: Flags.Progress

@Option(help: "Platform string in the form 'os/arch/variant'. Example 'linux/arm64/v8', 'linux/amd64'") var platform: String?

@Argument var reference: String
Expand All @@ -46,13 +49,18 @@ extension Application {
let scheme = try RequestScheme(registry.scheme)
let image = try await ClientImage.get(reference: reference)

let progressConfig = try ProgressConfig(
description: "Pushing image \(image.reference)",
itemsName: "blobs",
showItems: true,
showSpeed: false,
ignoreSmallSize: true
)
var progressConfig: ProgressConfig
if progressFlags.disableProgressUpdates {
progressConfig = try ProgressConfig(disableProgressUpdates: progressFlags.disableProgressUpdates)
} else {
progressConfig = try ProgressConfig(
description: "Pushing image \(image.reference)",
itemsName: "blobs",
showItems: true,
showSpeed: false,
ignoreSmallSize: true
)
}
let progress = ProgressBar(config: progressConfig)
defer {
progress.finish()
Expand Down
7 changes: 5 additions & 2 deletions Sources/CLI/RunCommand.swift
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@ extension Application {
@OptionGroup
var global: Flags.Global

@OptionGroup
var progressFlags: Flags.Progress

@Argument(help: "Image name")
var image: String

Expand All @@ -56,8 +59,8 @@ extension Application {
let id = Utility.createContainerID(name: self.managementFlags.name)

var progressConfig: ProgressConfig
if managementFlags.disableProgressUpdates {
progressConfig = try ProgressConfig(disableProgressUpdates: managementFlags.disableProgressUpdates)
if progressFlags.disableProgressUpdates {
progressConfig = try ProgressConfig(disableProgressUpdates: progressFlags.disableProgressUpdates)
} else {
progressConfig = try ProgressConfig(
showTasks: true,
Expand Down
8 changes: 8 additions & 0 deletions Sources/ContainerClient/Flags.swift
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,14 @@ public struct Flags {

@Option(name: [.customLong("label"), .customShort("l")], help: "Add a key=value label to the container")
public var labels: [String] = []
}

public struct Progress: ParsableArguments {
public init() {}

public init(disableProgressUpdates: Bool) {
self.disableProgressUpdates = disableProgressUpdates
}

@Flag(name: .customLong("disable-progress-updates"), help: "Disable progress bar updates")
public var disableProgressUpdates = false
Expand Down