rversions's readme

Description

rversions is a complete rewrite of versions in Rust. It is an open source (GPL v3) software that checks releases and versions of your favourite programs through RSS or Atom feeds and tells you which one has been released since the last time is has been checked.

It can check projects from any website or repository that provides an RSS or an Atom feed to track releases or tags that may contain versions. Projects must be added to a YAML file (by default ~/.config/rversions/rversions.yaml).

Unlike versions, rversions tracks major versions independently: if a 22.4.3 is created after a 23.2.3 and previous versions were 22.4.2 and 23.1.9 it will be taken into account and both will be printed and remembered.

rversions uses and produces text files. Those files are cache files written into ~/.cache/rversions directory. *.cache cache files are containing the project list and their associated versions (the latest in each sub version if any), the date at which the release occurred and the date when rversions checked it.

Installation

To install rversions you need first to install Rust.

From crates.io

Use cargo to directly install rversions for your system: cargo install rversions (depending on your system this may take some time - on mine it takes nearly 5 minutes).

From source

Use git to clone the repository and build the release binary of rversions:

bash git clone https://gitlab.com/delhomme/rversions.git cd rversions cargo build --release

This will compile all needed dependencies and at last will produce a binary program in target/release/ named rversions. One may call it directly to use it:

./target/release/rversions --help

YAML configuration file structure

By default rversions will try to load it's configuration file from ~/.config/rversions/rversions.yaml if it exists. Such file is a list of sites definitions and must comply to the following format:

```yaml sites: - name: 'FreshCode' url: 'https://freshcode.club/projects.rss' type: list projects: - name: FileZilla filter-in: 'v([\d.-rRcC]+)' - name: sauvegarde - name: git

Sites must have a name, an url and a type. There is two types of sites:

Common fields that may be defined:

A real life example file is provided: examples/versions.yaml

Usage

rversions is a command line tool that may be invoked directly in a terminal or in scripts. Note that rversions is compliant with NO_COLOR specification. You can have full usage options invoking rversions command with --help flag. It will give you something similar to:

text -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

For instance to test the real life example you can do: ./target/release/rversions -f examples/versions.yaml

Related links