An update checker.
lua5.4
lua-curl
To build a script bundle, lmerge is also needed.
$ cd src
$ make # creates rollmeow
$ chmod +x rollmeow
The bundled script rollmeow
could be run directly.
rollmeow [options] [PKGNAME1] [PKGNAME2] ...
For options,
--conf CONF
: useCONF
as configuration file--sync
: sync package cache before reporting--diff
: only print outdated packages--json
: JSON format output--info
: show information about a package--showmatch
: show regex matches, useful for debugging--manual
: show manually checked packages, which are omitted in output for compatibility.--verbose
: be verbose
Configuration file for rollmeow is simply a normal Lua program, which should return a table with fields listed below:
{
function string evalDownstream(string pkgname)
function string fetchUpstream(string url)
string cachePath
table packages
number connections
}
evalDownstream
: Returns downstream version string of packagepkgname
fetchUpstream
: (deprecated) Returns content ofurl
as a stringconnections
: Maximum number of concurrent fetch connections.cachePath
: A path to store upstream version caches.packages
: see next section
There're currently three types of packages and rollmeow fetches their versions differently,
- Regex-matching packages. This is the main type and these packages come with
both
url
andregex
property. rollmeow fetches the URL and synchronize version information based on the provided regex. - Batched packages. These packages come with
follow
property. rollmeow uses version information of the package specified byfollow
property for them. This type is useful to track subpackages and grouped packages (for example, KDE). - Manully-checked packages. These packages act as placeholders and provide
url
property only. rollmeow doesn't synchronize or store version information for them.
{
url: string
[OPTIONAL] regex: string
[OPTIONAL] postMatch: string function(string match)
[OPTIONAL] filter: boolean function([string] verArray)
[OPTIONAL] note: string
[OPTIONAL] follow: string
}
url
: URL to fetchregex
: A Lua regex for matching version strings.-
modifier is not available and is recognized as a normal character. A package omitting bothregex
andfollow
property will be recognized as manually-checked one.postMatch
: A hook to process matched results. Has no effect onfilter
: Called with each matched version, should return false if this version should be ignored.verArray
is the version string splited by dot (.
)note
: An optional note to the package. Not used internally, but rollmeow adds special marks on packages with available notes. Could be listed with--info
.follow
: Specify another package whose version synchronized with this one..