“ConsoleIO”

ConsoleIO Swift Package Manager Twitter: @wendyliga

Preview

Swift 命令行输入输出助手。使用 ConsoleIO,您可以轻松地使用 Swift 创建您的 CLI 应用程序。ConsoleIO 为您提供创建输入和输出以及验证输入/输出的灵活性。

安装

使用 Swift Package Manager

要安装 ConsoleIO 以在 Swift Package Manager 驱动的工具中使用,请将 ConsoleIO 作为依赖项添加到您的 Package.swift 文件中。有关更多信息,请参阅 Swift Package Manager 文档。

.package(url: "https://github.com/wendyliga/ConsoleIO.git", from: "1.0.1")

如何使用

输入

不使用默认值

Example

import ConsoleIO

let userInputResult = input(message, validator: { result -> Bool in
            let target = result.lowercased()
            
            guard target == "y" || target == "n" else {
                return false
            }
            
            return true
        }, failedToValidate: () -> Void = {
            print("Please select yes(y) or no(n) only")
        })

使用

注意:如果用户输入的内容未能满足 validator 的要求,ConsoleIO 将自动再次询问问题,直到 validator 满意为止。如果您想设置默认值,请查看下面的另一个示例。

使用默认值

请求带有默认值的输入

Example

import ConsoleIO

let message = "Input your username? you can leave it empty(will use Jhon Doe)" 
let defaultUserName = "Jhon Doe"

let validator: (String) -> Bool = { result -> Bool in
    return result.count < 50
}

let checkValidationResult: (String, Bool) -> Void = { result, isValid in
    if !isValid {
        print("\(result) doesn't valid, please try again")
    }
}

let afterValidation: (String) -> Void = { result in
    if result == defaultDirectory {
        print("You will use \(defaultDirectory)")
    }
}

let username = input(message, 
                     defaultValue: defaultUserName, 
                     validator: validator, 
                     checkValidationResult: checkValidationResult, 
                     afterValidation: afterValidation)

使用

输出

您可以使用预设输出到控制台

有几种模式

示例

  output("Please enter only valid number", to: .error)

  output("Your session was invalid, please login again", to: .error, prefix: "", thenExit: true)

您可以利用的几个功能

许可

ConsoleIO

版权所有 (c) 2020 Wendy Liga。根据 MIT 许可证授权,如下所示

特此授予许可,免费向任何获得本软件和相关文档文件(“软件”)副本的人授予许可,在不受限制的情况下处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件副本的权利,并允许向其提供本软件的人员在满足以下条件的情况下这样做

上述版权声明和本许可声明应包含在本软件的所有副本或重要部分中。

本软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于适销性、特定用途的适用性和不侵权的保证。在任何情况下,作者或版权持有者均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权诉讼或其他诉讼中,由本软件或本软件的使用或其他交易引起、产生或与之相关。