I've published the first step of that MediaWiki Extension tool. So
far it's only a script that can populate a database with extension
metadata from extensions in Gerrit.
So, if you have any use for your own sqlite database of extension
metadata, here's how to get one (assuming you have node and git
installed).
$ git clone -b v0.1.1 https://github.com/redwerks/mediawiki-extensionservice.git
$ cd mediawiki-extensionservice/
$ npm install
$ npm install -g sequelize-cli
$ npm install sqlite3
$ mkdir storage/
$ echo "STORAGE_DIR=./storage" >> .env
$ echo "DATABASE_TYPE=sqlite" >> .env
$ echo "DATABASE_STORAGE=./storage/db.sqlite" >> .env
$ sequelize db:migrate
$ bin/cron.js
You'll have to wait a few minutes for it to finish. But at the end
you can use whatever sqlite tools you have to look at the database
in `./storage/db.sqlite`.
The Extensions table will contain a list of extensions, besides the
extid and composerName indexes each row will have a data column
containing JSON with data on the extension.
Some of this data is only available for extensions containing an
extension.json file (The .php file is not parsed).
- name: The name of the extension (English text for "namemsg" ->
"name" -> final fallback to the extension's dirname)
- description: The extension description (English text for
"descriptionmsg" -> "description" -> empty)
- versionHint: The "version" in extension.json.
This data will always be available:
- repository: The git repository url.
- composerName: The "name" in composer.json if present.
- sources: An array of some of the possible ways to install the
extension.
- git-master if the repository has a master branch (basically
everything)
- git-stable if the repository has a HEAD that points to something
other than master (in this case a "stableBranch" will also be
present)
- git-rel if the repository has REL#_## branches (basically
everything)
- git-tag if the repository has #.#.# or v#.#.# tags
- composer if the repository has a valid composer.json with a
name.
--
~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://danielfriesen.name/]