WDLXTV Repository

From WikiDLXTV
Revision as of 15:45, 7 February 2015 by Recliq (Talk | contribs)

Jump to: navigation, search

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.

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