12个稳定版本
1.3.1 | 2024年6月10日 |
---|---|
1.3.0 | 2024年4月10日 |
1.2.11 | 2023年12月21日 |
1.2.10 | 2023年6月21日 |
1.2.3 |
|
在命令行工具中排名第75
每月下载量:105
54KB
883 行
rversions的readme
描述
rversions是使用Rust语言对versions的完全重写。它是一款开源软件(GPL v3),可以通过RSS或Atom源检查您喜欢的程序的版本和发布,并告诉您自上次检查以来哪个版本已发布。
它可以检查任何提供RSS或Atom源以跟踪发布或可能包含版本的项目的网站或存储库。必须将项目添加到YAML文件中(默认为~/.config/rversions/rversions.yaml
)。
与versions不同,rversions独立跟踪主要版本:如果在23.2.3
之后创建了一个22.4.3
,并且之前的版本是22.4.2
和23.1.9
,它将被考虑,并且两个版本都将被打印和记住。
rversions使用并生成文本文件。这些文件是写入到~/.cache/rversions
目录的缓存文件。*.cache
缓存文件包含项目列表及其相关版本(如果有,则是每个子版本中的最新版本),发布发生的日期以及rversions检查它的日期。
安装
要安装rversions,您首先需要安装Rust。
从crates.io
使用cargo直接为您的系统安装rversions:cargo install rversions
(根据您的系统,这可能需要一些时间 - 在我的系统上,它需要近5分钟)。
从源代码
使用git克隆仓库并构建rversions的发布二进制文件
git clone https://gitlab.com/delhomme/rversions.git
cd rversions
cargo build --release
这将编译所有必要的依赖项,最后将在target/release/
目录中产生一个名为rversions
的二进制程序。可以直接调用它以使用它
./target/release/rversions --帮助
YAML配置文件结构
默认情况下,rversions会尝试从~/.config/rversions/rversions.yaml
加载其配置文件(如果存在)。此类文件是站点定义的列表,必须符合以下格式:
sites:
- name: 'FreshCode'
url: 'https://freshcode.club/projects.rss'
type: list
projects:
- name: FileZilla
filter-in: 'v([\d\.\-rRcC]+)'
- name: sauvegarde
- name: git
- name: 'pypi'
url: 'https://pypi.ac.cn/rss/updates.xml'
type: list
projects:
- name: PyYAML
- name: feedparser
- name: 'github'
url: "https://github.com/{}/tags.atom"
type: byproject
projects:
- name: hashicorp/terraform
filter-in: 'v([\d\.-rRcCbBeEtTaAlLpPhH]+)'
- name: ANSSI-FR/MLA
filter-in: 'mlar-v([\d\.]+)'
- name: StackStorm/st2
entry: 'last checked'
- name: gohugoio/hugo
filter-in: '(\d+.\d+.\d+[\.\-\+\w]+)'
entry: 'last checked'
站点必须具有一个名称、一个URL和一个类型。有两种类型的站点:
list
:该站点有一个包含所有项目的单个源,例如freshcode.club或fossies.org。这些站点预计会在帖子和站点级别以相同格式发布他们的项目,可以定义一个站点级别的filter-in:
正则表达式。这个正则表达式必须有两个匹配组:一个用于项目的名称,一个用于它的版本。同样,可以定义站点级别的entry:
来打印最新的条目或从上次检查时间找到的所有条目。在一条帖子包含多个项目更新(例如mxnet: 1.9.1 b0; libmxnet: 1.9.1 b0; mxnet-openblas: 1.9.1 b0
。它必须是每个项目的字符分隔符数组,例如[',', '|', ';']
。byproject
:该站点为每个项目提供一个源,例如gitlab。花括号{}
表示在站点的projects:
列表中找到的项目名称。这些项目可以直接通过name:
字段列出,并可带选项。您可以指定一个filter-in:
、filter-out:
或一个entry:
类型选项(或同时指定所有选项)。
可能定义的常见字段
filter-in:
是一个正则表达式,用于匹配版本号,然后用于在版本之间排序。filter-out:
是一个正则表达式,用于排除某些版本(例如所有-rc
版本)的报告。entry:
用于确定是否打印最新的条目(默认行为)或从last checked
日期以来的所有新条目。
提供了一个真实生活示例文件:examples/versions.yaml
用法
rversions 是一个可以在终端或脚本中直接调用的命令行工具。请注意,rversions 符合 NO_COLOR 规范。您可以通过使用 rversions
命令并带上 --help
标志来获取完整的用法选项。它将给出类似的内容
-d, --debug Starts in debug mode and prints things that may help
-f, --filename <FILENAME> Configuration file filename (in YAML format) with projects to check
-h, --help Print help information
-l, --list List all projects and their version in cache
-V, --version Print version information
例如,要测试真实生活示例,您可以这样做:./target/release/rversions -f examples/versions.yaml
相关链接
依赖
~16–34MB
~570K SLoC