An update checker.
lua5.4lua-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: useCONFas configuration file--sync: sync package cache before reporting--diff: only print outdated packages--json: JSON format output--info: show information about a package--showfetched: show fetched content of the URL, useful for debugging--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 packagepkgnamefetchUpstream: (deprecated) Returns content ofurlas a stringconnections: Maximum number of concurrent fetch connections.cachePath: A path to store upstream version caches.packages: see next section
There're currently four types of packages and rollmeow fetches their versions differently,
{
url: string
regex: string
[OPTIONAL] postMatch: string function(string match)
[OPTIONAL] filter: boolean function([string] verArray)
[OPTIONAL] note: string
}
This is one of the main types and these packages come with both url and
regex property. rollmeow fetches the URL and synchronize version information
based on the provided regex.
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 bothregexandfollowproperty 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.verArrayis 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.
{
gitrepo: string
regex: string
[OPTIONAL] postMatch: string function(string match)
[OPTIONAL] filter: boolean function([string] verArray)
[OPTIONAL] note: string
}
This is one of the main types and these packages come with both gitrepo and
regex property. rollmeow fetches Git references in the repository at the
specified URL and synchronize version information based on the provided regex.
Only Git protocol v2 through HTTP(S) is supported currently.
Most options follow the same meaning as the regex-matching type.
{
follow: string
[OPTIONAL] url: string
[OPTIONAL] note: string
}
These packages come with follow property. rollmeow uses version information
of the package specified by follow property for them. This type is useful to
track subpackages and grouped packages (for example, KDE).
follow: Specify another package whose version synchronized with this one..
{
url: string
[OPTIONAL] note: string
}
These packages act as placeholders. rollmeow doesn't synchronize or store version information for them.