[pLog-svn] r6705 - in plugins/branches/lifetype-1.2: . bin
jondaley at devel.lifetype.net
jondaley at devel.lifetype.net
Fri Jul 25 11:51:12 EDT 2008
Author: jondaley
Date: 2008-07-25 11:51:12 -0400 (Fri, 25 Jul 2008)
New Revision: 6705
Added:
plugins/branches/lifetype-1.2/bin/genpluginfeeds.php
Removed:
plugins/branches/lifetype-1.2/genpluginfeeds.php
Log:
this belongs in the bin directory, I think
Copied: plugins/branches/lifetype-1.2/bin/genpluginfeeds.php (from rev 6704, plugins/branches/lifetype-1.2/genpluginfeeds.php)
===================================================================
--- plugins/branches/lifetype-1.2/bin/genpluginfeeds.php (rev 0)
+++ plugins/branches/lifetype-1.2/bin/genpluginfeeds.php 2008-07-25 15:51:12 UTC (rev 6705)
@@ -0,0 +1,190 @@
+<?php
+
+/**
+ * Please change this before running this file
+ */
+define( "PLOG_CLASS_PATH", "/Users/oscar/lifetype-1.2/" );
+
+/**
+ * current LT version
+ */
+define( "LIFETYPE_VERSION", "1.2" );
+
+include_once( PLOG_CLASS_PATH."class/bootstrap.php" );
+lt_include( PLOG_CLASS_PATH."class/misc/glob.class.php" );
+lt_include( PLOG_CLASS_PATH."class/file/file.class.php" );
+
+class SvnRepository
+{
+ var $_url;
+
+ function SvnRepository( $url )
+ {
+ $this->_url = $url;
+ }
+
+ function getUrl()
+ {
+ return( $this->_url );
+ }
+}
+
+class SvnClient
+{
+ var $_r;
+
+ function SvnClient( $repository )
+ {
+ $this->_r = $repository;
+
+ $this->_svn = $this->_findSvnClient();
+ }
+
+ /**
+ * @private
+ */
+ function _findSvnClient()
+ {
+ $folders = Array(
+ "/usr/bin/svn",
+ "/usr/local/bin/svn"
+ );
+
+ foreach( $folders as $path ) {
+ if( File::isReadable( $path ))
+ return( $path );
+ }
+
+ return( "svn" );
+ }
+
+ function checkOut( $path, $dest = "" )
+ {
+ $cmd = $this->_svn." co ".$this->_r->getUrl().$path." ".$dest;
+
+ $result = exec( $cmd, $output, $code );
+
+ return( $code == 0 );
+ }
+
+ function export( $path, $dest = "" )
+ {
+ $cmd = $this->_svn." export ".$this->_r->getUrl().$path." ".$dest;
+
+ $result = exec( $cmd, $output, $code );
+
+ return( $code == 0 );
+ }
+}
+
+class PluginFeedWriter
+{
+ var $_dest;
+
+ function PluginFeedWriter( $dest )
+ {
+ $this->_dest = $dest;
+
+ // open the file
+ $this->_out = new File( $this->_dest );
+ $this->_out->open( "w+" );
+ }
+
+ function open()
+ {
+ // header
+ $this->_out->write( "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n");
+ $this->_out->write( "<rss version=\"2.0\" xmlns:lt=\"http://www.lifetype.net\">\n" );
+ $this->_out->write( "<channel>\n");
+ $this->_out->write( "<title>Lifetype plugin feed</title>\n" );
+ $this->_out->write( "<link>http://www.lifetype.net</link>\n" );
+ $this->_out->write( "<description>This feed lists all the plugins available, their version and download link</description>\n" );
+ }
+
+ function writePluginInfo( $plugin, $data )
+ {
+ $this->_out->write( "<item>\n" );
+ $this->_out->write( "<title>".$plugin."</title>\n" );
+ $this->_out->write( "<link>".$data["url"]."</link>\n" );
+ $this->_out->write( "<author>".htmlentities($data["author"])."</author>\n" );
+ $this->_out->write( "<description>".$data["description"]."</description>\n" );
+ $this->_out->write( "<lt:version>".$data["version"]."</lt:version>\n" );
+ $this->_out->write( "</item>\n" );
+ }
+
+ function close()
+ {
+ $this->_out->write( "</channel>\n" );
+ $this->_out->write( "</rss>\n" );
+ $this->_out->close();
+ }
+}
+
+// check that the amount of parameters is correct
+if( count( $argv ) < 3 ) {
+ die( "Usage: genpluginfeeds.php svnfolder destfile\n" );
+}
+
+// get the data from the command line
+$svnFolder = $argv[1];
+$feedFile = $argv[2];
+
+// use svn to check files out
+$repo = new SvnRepository( "http://devel.lifetype.net/svn/plog" );
+$svn = new SvnClient( $repo );
+if( !$svn->checkOut( $svnFolder )) {
+ die("There was a problem while checking out data from the Subversion repository" );
+}
+
+// intialize the feed writer
+$w = new PluginFeedWriter( $feedFile );
+$w->open();
+
+$files = Glob::Glob( basename( $svnFolder ));
+foreach( $files as $file ) {
+
+ // get the plugin name
+ $pluginName = basename( $file );
+
+ // ignore those that are not folders, the 'unported' folder and some more
+ if( !is_dir( $file ) || $pluginName == "unported" || $pluginName == "bin" )
+ continue;
+
+ // load the plugin file and try to extract some information from it...
+ $f = new File( $file."/plugin{$pluginName}.class.php" );
+ $f->open( "r" );
+
+ $contents = $f->readFile();
+
+ // try to find the 'version' lines
+ $found = false;
+ $i = 0;
+ $version = "";
+ while( !$found && $i < count( $contents )) {
+ if( $res = preg_match( '/\$this->version *= *["\'](.*)["\'];/i', $contents[$i], $matches )) {
+ $found = true;
+ $version = $matches[1];
+ }
+
+ if( $res = preg_match( '/\$this->author *= *["\'](.*)["\'];/i', $contents[$i], $matches )) {
+ $author = $matches[1];
+ }
+
+ $i++;
+ }
+
+ if( !$found ) {
+ $version = "not found";
+ }
+
+ $data["version"] = $version;
+ $data["url"] = "http://downloads.sourceforge.net/lifetype/".LIFETYPE_VERSION."_{$pluginName}.zip";
+ $data["author"] = $author;
+ $data["description"] = "Plugin $pluginName - version $version";
+
+ $w->writePluginInfo( $pluginName, $data );
+}
+
+// close the feed writer
+$w->close();
+?>
\ No newline at end of file
Property changes on: plugins/branches/lifetype-1.2/bin/genpluginfeeds.php
___________________________________________________________________
Added: svn:mergeinfo
+
Deleted: plugins/branches/lifetype-1.2/genpluginfeeds.php
===================================================================
--- plugins/branches/lifetype-1.2/genpluginfeeds.php 2008-07-18 00:31:17 UTC (rev 6704)
+++ plugins/branches/lifetype-1.2/genpluginfeeds.php 2008-07-25 15:51:12 UTC (rev 6705)
@@ -1,190 +0,0 @@
-<?php
-
-/**
- * Please change this before running this file
- */
-define( "PLOG_CLASS_PATH", "/Users/oscar/lifetype-1.2/" );
-
-/**
- * current LT version
- */
-define( "LIFETYPE_VERSION", "1.2" );
-
-include_once( PLOG_CLASS_PATH."class/bootstrap.php" );
-lt_include( PLOG_CLASS_PATH."class/misc/glob.class.php" );
-lt_include( PLOG_CLASS_PATH."class/file/file.class.php" );
-
-class SvnRepository
-{
- var $_url;
-
- function SvnRepository( $url )
- {
- $this->_url = $url;
- }
-
- function getUrl()
- {
- return( $this->_url );
- }
-}
-
-class SvnClient
-{
- var $_r;
-
- function SvnClient( $repository )
- {
- $this->_r = $repository;
-
- $this->_svn = $this->_findSvnClient();
- }
-
- /**
- * @private
- */
- function _findSvnClient()
- {
- $folders = Array(
- "/usr/bin/svn",
- "/usr/local/bin/svn"
- );
-
- foreach( $folders as $path ) {
- if( File::isReadable( $path ))
- return( $path );
- }
-
- return( "svn" );
- }
-
- function checkOut( $path, $dest = "" )
- {
- $cmd = $this->_svn." co ".$this->_r->getUrl().$path." ".$dest;
-
- $result = exec( $cmd, $output, $code );
-
- return( $code == 0 );
- }
-
- function export( $path, $dest = "" )
- {
- $cmd = $this->_svn." export ".$this->_r->getUrl().$path." ".$dest;
-
- $result = exec( $cmd, $output, $code );
-
- return( $code == 0 );
- }
-}
-
-class PluginFeedWriter
-{
- var $_dest;
-
- function PluginFeedWriter( $dest )
- {
- $this->_dest = $dest;
-
- // open the file
- $this->_out = new File( $this->_dest );
- $this->_out->open( "w+" );
- }
-
- function open()
- {
- // header
- $this->_out->write( "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n");
- $this->_out->write( "<rss version=\"2.0\" xmlns:lt=\"http://www.lifetype.net\">\n" );
- $this->_out->write( "<channel>\n");
- $this->_out->write( "<title>Lifetype plugin feed</title>\n" );
- $this->_out->write( "<link>http://www.lifetype.net</link>\n" );
- $this->_out->write( "<description>This feed lists all the plugins available, their version and download link</description>\n" );
- }
-
- function writePluginInfo( $plugin, $data )
- {
- $this->_out->write( "<item>\n" );
- $this->_out->write( "<title>".$plugin."</title>\n" );
- $this->_out->write( "<link>".$data["url"]."</link>\n" );
- $this->_out->write( "<author>".htmlentities($data["author"])."</author>\n" );
- $this->_out->write( "<description>".$data["description"]."</description>\n" );
- $this->_out->write( "<lt:version>".$data["version"]."</lt:version>\n" );
- $this->_out->write( "</item>\n" );
- }
-
- function close()
- {
- $this->_out->write( "</channel>\n" );
- $this->_out->write( "</rss>\n" );
- $this->_out->close();
- }
-}
-
-// check that the amount of parameters is correct
-if( count( $argv ) < 3 ) {
- die( "Usage: genpluginfeeds.php svnfolder destfile\n" );
-}
-
-// get the data from the command line
-$svnFolder = $argv[1];
-$feedFile = $argv[2];
-
-// use svn to check files out
-$repo = new SvnRepository( "http://devel.lifetype.net/svn/plog" );
-$svn = new SvnClient( $repo );
-if( !$svn->checkOut( $svnFolder )) {
- die("There was a problem while checking out data from the Subversion repository" );
-}
-
-// intialize the feed writer
-$w = new PluginFeedWriter( $feedFile );
-$w->open();
-
-$files = Glob::Glob( basename( $svnFolder ));
-foreach( $files as $file ) {
-
- // get the plugin name
- $pluginName = basename( $file );
-
- // ignore those that are not folders, the 'unported' folder and some more
- if( !is_dir( $file ) || $pluginName == "unported" || $pluginName == "bin" )
- continue;
-
- // load the plugin file and try to extract some information from it...
- $f = new File( $file."/plugin{$pluginName}.class.php" );
- $f->open( "r" );
-
- $contents = $f->readFile();
-
- // try to find the 'version' lines
- $found = false;
- $i = 0;
- $version = "";
- while( !$found && $i < count( $contents )) {
- if( $res = preg_match( '/\$this->version *= *["\'](.*)["\'];/i', $contents[$i], $matches )) {
- $found = true;
- $version = $matches[1];
- }
-
- if( $res = preg_match( '/\$this->author *= *["\'](.*)["\'];/i', $contents[$i], $matches )) {
- $author = $matches[1];
- }
-
- $i++;
- }
-
- if( !$found ) {
- $version = "not found";
- }
-
- $data["version"] = $version;
- $data["url"] = "http://downloads.sourceforge.net/lifetype/".LIFETYPE_VERSION."_{$pluginName}.zip";
- $data["author"] = $author;
- $data["description"] = "Plugin $pluginName - version $version";
-
- $w->writePluginInfo( $pluginName, $data );
-}
-
-// close the feed writer
-$w->close();
-?>
\ No newline at end of file
More information about the pLog-svn
mailing list