#命令 #命令行工具 #终端 #实用工具 #解析器 #CLI 解析器 #文本解析器

程序 colorer

简单的命令行实用工具,为默认不带颜色的命令添加颜色

3 个稳定版本

1.1.0 2023年1月6日
1.0.1 2022年7月11日
0.3.2 2021年10月4日
0.3.1 2021年9月11日
0.1.1 2021年8月22日

#2027命令行实用工具

每月 下载 23

MIT 许可证

20KB
283

Colorer

Crates.io GitHub last commit

Colorer 是一个简单且可扩展的文本解析命令行实用工具,旨在为默认不带颜色的命令添加颜色。

命令使用用户定义的配置文件。

安装

使用 Cargo 安装

如果已安装 Rust 工具链,则可以使用 cargo 安装 colorer

cargo install colorer # from crates.io

或,在克隆此仓库后运行

cargo install --path .

从版本中安装

安装此程序的另一种方法是下载版本页上的二进制文件。有多种选择

  • 下载二进制文件并将其放在路径中(手动创建包含颜色文件的目录)
  • 下载软件包(deb 或 rpm)并安装它。这将还会创建包含配置文件的目录。

使用方法

程序在 /etc/colorer 中搜索配置文件。此仓库包含 color_patters 目录中的一些基本配置文件。

要使用 colorer,将要运行的命令作为参数传递,例如

colorer -- df -h

定义新配置文件

用于定义颜色方案的文件是简单的 TOML 文件,文件名与命令相同(例如 ls.toml)。颜色方案包含一个 command 向量,其中每个组件包含以下变量

  • regex:用于查找文本的正则表达式。此值是必需的。
  • 默认装饰器:它包含一个颜色数组。使用数组,可以添加背景颜色、前景颜色以及粗体、斜体。此值也是必需的。
  • 可选装饰器:此值是可选的,包含用于与正则表达式找到的字符串的替代值数组。元素表示为一个元组,其中第一个值包含一个正则表达式,用于仅在已通过必需的正则表达式找到的内容上搜索模式,以及装饰器列表。

以下代码片段定义了df,是一个示例。它用于以百分比形式突出显示使用情况。

[[command]]
regex = "(?<=(\\b(\\d+((\\.|\\,)\\d+)?(\\w+)?\\s+){3}))\\d+%"   # main regex.
                                                                # This searches for all
                                                                # percentages
default_decorator = ["GreenFg"] # this is the default decorator and it is used 
                                # if none of the optional decorators are used.
                                # By exclusion, for this example, it includes 
                                # all the values from 0% up to 49%
optional_decorators = [
    # the following regexs apply only for the text extracted by the main regex
    [
        "([5-7][0-9])%", # values from 50% up to 79%
        ["YellowFg"] # yellow text
    ], 
    [
        "([8][0-9]|[9][0-6])%", # values from 80% up to 96%
        ["MagentaFg"] # magenta text
    ], 
    [
        "([9][7-9]|100)%", # values above 97%
        ["RedBg"] # red backgroud
    ]
]

可以为命令(dfpingnmap)以及子命令(docker psdocker search)定义颜色方案。对于子命令定义,将command替换为subcommand.<subcommand>。例如,在docker search的情况下

[[subcommand.search]]
regex = "(^[^NAME]\\w+(?=\\s)|(?<=(^\\w+\\/))\\S+)"
default_decorator = ["YellowFgBright", "Bold"]

注意

如果使用colorer来别名命令或使用选项时,始终使用双横线是一个好主意。例如,通过定义ll='colorer ls -lahF'll --help将打印colorer的帮助信息。这个问题可以通过ll='colorer -- ls -lahF'来解决

屏幕截图

df screenshot

ping screenshot

nmap screenshot

依赖关系

~6–15MB
~220K SLoC