#command-line #trivial #utilities #pipelight #file #set #git

pipelight_utils

一套用于命令行工具的简单实用程序

8 个版本

0.2.7 2024 年 8 月 23 日
0.2.6 2024 年 8 月 23 日
0.2.2 2024 年 7 月 30 日

4#trivial

Download history 85/week @ 2024-07-07 6/week @ 2024-07-14 255/week @ 2024-07-28 5/week @ 2024-08-04 124/week @ 2024-08-11 521/week @ 2024-08-18

905 每月下载量

GPL-2.0-only

60KB
1.5K SLoC

PIPELIGHT_utils 库

!! API 未稳定且缺乏文档 !! !! 自行承担下载风险 !!

一套用于命令行工具的简单实用程序。

这些是从 pipelight 自动化命令行工具中清理出来的最干净的代码模块。


lib.rs:

!! API 未稳定 - 缺乏文档 - 请勿使用 !!

关于

PIPELIGHT_utils 是一个库,收集了一系列用于命令行工具的简单实用程序。

这些是从 pipelight 中提取并命名的最干净的模块,它是一个小巧的自动化工具。

Teleport - 递归查找文件。

您可以浏览文件系统以查找配置文件。

use pipelight_utils::teleport::Portal;

let mut portal = Portal::new()?;
// Set a pattern to search for.
portal.seed("pipelight").search()?;

// Get the file path
let file_path = portal.target.file_path.clone().unwrap();
// Get the directory path
let directory_path = portal.target.directory_path.clone().unwrap();

// Go to the target directory
portal.teleport()?;
// Go back to the origin directory
portal.origin()?;

File - 使用漂亮的诊断解析文件类型。

结构良好的解析错误报告,包含特定语言的错误类型。归功于 thiserrormiette 库。

假设您想将数据反序列化为 Config 结构。



let res = serde_yaml::from_str::<Value>(&string);
match res {
    Ok(res) => Ok(res),
    Err(e) => {
        let err = YamlError::new(e, &string);
        return Err(err.into());
    }
};

let res = toml::from_str::<Value>(&string);
match res {
    Ok(res) => Ok(res),
    Err(e) => {
        let err = TomlError::new(e, &string);
        return Err(err.into());
    }
};

pretty parsing error report

Git - 简单的 Git 仓库操作。

use pipelight_utils::git::Git;

let repo = Git::new();
let branch = repo.get_branch()?;
let tag = repo.get_tag()?;
let commit = repo.get_commit()?;

依赖项

~21–36MB
~611K SLoC