Motor
GitHub release Swift Package Manager license

Swift CLI 旋转器。 简单完全可定制

目录

演示

import Foundation
import Motor

/// Initialize spinner.
let spinner = Spinner(pattern: Patterns.dots)
/// Start spinner.
spinner.start(message: "Motor initiated...")
/// Do your job.
sleep(2)
/// Print message.
spinner.display("Do something...")
/// Do another job.
sleep(3)
/// Stop spinner with message.
spinner.stop(message: "".color(.green) + " Done!")

在终端上

Demo

安装

将 Motor 添加到 Package.swift

dependencies: [
    .package(url: "https://github.com/flintbox/Motor", from: "0.1.1")
]

自定义

模式

public struct Pattern {

    public let frames: [String]
    public let fps: UInt32
}

旋转器模式。 frames 用于动画的帧。 fps(每秒帧数)用于帧率。

延迟

open class Animator: Operation {

    public init(pattern: Pattern, delay: UInt32) {
        spinner = Animation(pattern: pattern)
        self.delay = delay
        super.init()
    }
}

启动动画前的延迟。 当作业持续时间可能很短并且不想闪烁旋转器时很有用。

消息

open class Spinner {

    open func start(message: String = "") {
    }

    open func display(_ message: String) {
    }

    open func stop(message: String? = nil) {
    }
}

在动画的开始、期间或终止时。 在旋转器旁边显示消息。 请记住,旋转器和消息应位于同一行,以便正确动画。

贡献

如果您有好的想法或建议? 请不要犹豫发起 pull request 或给我发送 邮件

希望您喜欢使用 Motor 构建命令行工具!