WDLXTV Repository
Contents
Introduction
This section explains how to setup WDLXTV Web Repositories. You can run your own UMSP/apps/wdtvext repositories, either for mirroring the official one or hosting your own plugins and apps.
I'm not going to cover how to setup the webserver itself (ie apache), there's lot's of information available on that topic on the web. This guide describes the structure of the repositories used by WDLXTV. Additionally I will provide the original scripts to keep the repos in sync with SVN.
In this guide I will use the domain example.com, any occurance of this domain should be replaced with your domain or IP.
Repository Setup
UMSP Repository
Directory structure
/var/www/umsp.wdlxtv.com# ls -ald * -rw-r--r-- 1 www-data www-data 0 Jan 31 19:06 favicon.ico -rw-r--r-- 1 www-data www-data 0 Feb 7 19:43 index.html -rw-r--r-- 1 www-data www-data 81549 Feb 7 19:05 manifest.xml drwxrwxr-x 2 www-data www-data 12288 Feb 2 13:38 plugins -rwxr-xr-x 1 www-data www-data 326 May 13 2011 plugins.php -rw-r--r-- 1 www-data www-data 26 Feb 7 17:27 robots.txt
/var/www/umsp.wdlxtv.com/plugins# ls -lad a* -rw-r--r-- 1 www-data www-data 7933 Feb 7 19:05 apple-trailers.tgz -rw-r--r-- 1 www-data www-data 611 Feb 7 19:05 apple-trailers.xml
Files
plugins.php
This file simply lists all plugins in the repository as a simple plaintext list. It's used by umsp-plugman-web to get the plugin list (repolist).
<?php unset($res_array); $res = exec("find ./plugins -maxdepth 1 -type f -name '*.xml' | sort", $res_array); print "<"."pre>\n"; foreach ($res_array as $plugin) { if ($plugin != "") { $plugin = preg_replace('/^\.\/plugins\//', "", $plugin); print preg_replace('/\.xml$/', "", $plugin); print "\n"; } } print "</"."pre>"; ?>
manifest.xml
This is an XML file which is a concatenation of all the plugin XML files in the plugins dir, eclosed by a <manifest> tag.
<?xml version='1.0' standalone='yes'?> <manifest> <umspplugin> <name>Apple Trailers</name> <author>shunte, RMerlin, zoster et. al.</author> <basefirmware>*</basefirmware> <category>Trailers</category> <date>2012-10-14</date> <desc>Apple Trailers</desc> <filename>apple-trailers.php</filename> <id>apple-trailers</id> <rating>General</rating> <thumbnail>http://lh3.googleusercontent.com/_xJcSFBlLg_Y/TZDbFvRJSmI/AAAAAAAAA1A/P-V72s4dzYM/s200/apple-logo-2pgray.png</thumbnail> <type>umsp</type> <url>http://forum.wdlxtv.com/viewtopic.php?f=53&t=3941</url> <version>0.2.4</version> </umspplugin> </manifest>
plugins/apple-trailers.tgz
This is a tar/gz file containing the plugin directory structure and files. More info can be found here: UMSP_plugin_development#Plugin_API
apple-trailers/ apple-trailers/apple-trailers_wec.php apple-trailers/config.php apple-trailers/apple-trailers-with-check.php apple-trailers/info.php apple-trailers/apple-trailers-proxy.php apple-trailers/apple-trailers.php
plugins/apple-trailers.xml
This is the plugin info file in XML format.
Important:
- The <id> tag must hold the name of the plugin directory.
- Always encode the & in urls in the url tag as & amp;! (Mediawiki always interprets this already as &, so the example below is a bad example ;))
<?xml version='1.0' standalone='yes'?> <umspplugin> <name>Apple Trailers</name> <author>shunte, RMerlin, zoster et. al.</author> <basefirmware>*</basefirmware> <category>Trailers</category> <date>2012-10-14</date> <desc>Apple Trailers</desc> <filename>apple-trailers.php</filename> <id>apple-trailers</id> <rating>General</rating> <thumbnail>http://lh3.googleusercontent.com/_xJcSFBlLg_Y/TZDbFvRJSmI/AAAAAAAAA1A/P-V72s4dzYM/s200/apple-logo-2pgray.png</thumbnail> <type>umsp</type> <url>http://forum.wdlxtv.com/viewtopic.php?f=53&t=3941</url> <version>0.2.4</version> </umspplugin>
Scripts
All the scripts will be available in SVN: - TODO -
mkrepo-umsp.pl
This Perl script checks out a current SVN tree to /tmp and builds the plugin archives as well as manages the XML info files and manifest.xml. It's intended to be called by the SVN post-commit hook script.
post-commit
This is the SVN post-commit hook script. You will only need this if you have your own SVN server running (on the same server the repo is on).
plugins.php
see above
Application Repository
WDTVExt Repository
WIP, please stand by...