Skip to content

Instance Method

customActivity(title:titleAfterIndicator:frames:success:failure:)

Creates an activity indicator with custom frames that are iterated over.
func customActivity(title: String, titleAfterIndicator: Bool = true, frames: [ConsoleText], success: String = "[Done]", failure: String = "[Failed]") -> ActivityIndicator<CustomActivity>

Parameters

title

The title of the activity indicator.

titleAfterIndicator

If true, the title of the activity indicator will be printed after the indicator itself.

frames

The text to loop over as the activity indicator runs.

success

The string to replace the indicator with when the operation succeeds. The default value is [Done].

failure

The string to replace the indicator with when the operation fails: The default value is [Failed].

Return Value

An ActivityIndicator that can start and stop the indicator.

Discussion

// Create an activity indicator with the strings (frames) to loop over as it runs.
let indicator = console.activity(title: "Loading", frames: ["⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"])

try await indicator.withActivityIndicator {
    // complete the indicator after 3 seconds
    try await Task.sleep(for: .seconds(3))
}

Note

If you want some ideas for indicator styles, take a look here: https://github.com/kiliankoe/CLISpinner/blob/master/Sources/CLISpinner/Pattern.swift#L88-L151