[Fusionforge-commits] r7985 - in trunk/gforge: common/include plugins/scmcpold/common

Roland Mas lolando at libremir.placard.fr.eu.org
Thu Aug 27 15:39:59 CEST 2009


Author: lolando
Date: 2009-08-27 15:39:59 +0200 (Thu, 27 Aug 2009)
New Revision: 7985

Modified:
   trunk/gforge/common/include/SCMPlugin.class.php
   trunk/gforge/plugins/scmcpold/common/CpoldPlugin.class.php
Log:
Cleaning up the refactoring with abstract methods

Modified: trunk/gforge/common/include/SCMPlugin.class.php
===================================================================
--- trunk/gforge/common/include/SCMPlugin.class.php	2009-08-27 13:39:48 UTC (rev 7984)
+++ trunk/gforge/common/include/SCMPlugin.class.php	2009-08-27 13:39:59 UTC (rev 7985)
@@ -24,7 +24,7 @@
 
 require_once $gfcommon.'include/scm.php';
 
-class SCMPlugin extends Plugin {
+abstract class SCMPlugin extends Plugin {
 	/**
 	 * SCMPlugin() - constructor
 	 *
@@ -68,7 +68,7 @@
 		}
 	}
 
-	function register () {
+	final function register () {
 		global $scm_list ;
 
 		$scm_list[] = $this->name ;
@@ -91,65 +91,9 @@
 		}
 	}
 
-	function createOrUpdateRepo ($params) {
-		$group_id = $params['group_id'] ;
+	abstract function createOrUpdateRepo ($params) ;
+	abstract function getStats ($params) ;
 
-		$project =& group_get_object($group_id);
-		if (!$project || !is_object($project)) {
-			return false;
-		} elseif ($project->isError()) {
-			return false;
-		}
-		
-		if (! $project->usesPlugin ($this->name)) {
-			return false;
-		}
-
-		// ...
-	}
-		
-	function gatherStats ($params) {
-		$group_id = $params['group_id'] ;
-
-		$project =& group_get_object($group_id);
-		if (!$project || !is_object($project)) {
-			return false;
-		} elseif ($project->isError()) {
-			return false;
-		}
-		
-		if (! $project->usesPlugin ($this->name)) {
-			return false;
-		}
-
-		// ...
-	}
-		
-	function generateSnapshots ($params) {
-		$group_id = $params['group_id'] ;
-
-		$project =& group_get_object($group_id);
-		if (!$project || !is_object($project)) {
-			return false;
-		} elseif ($project->isError()) {
-			return false;
-		}
-
-		$group_name = $project->getUnixName();
-
-		$snapshot = $sys_scm_snapshots_path.'/'.$group_name.'-scm-latest.tar.gz';
-		$tarball = $sys_scm_tarballs_path.'/'.$group_name.'-scmroot.tar.gz';
-
-		if (! $project->usesPlugin ($this->name)
-		    || ! $project->enableAnonSCM()) {
-			unlink ($snapshot) ;
-			unlink ($tarball) ;
-			return false;
-		}
-
-		// ...
-	}
-
 	function getBlurb () {
 		return _('<p>Unimplemented SCM plugin.</p>');
 	}
@@ -203,7 +147,7 @@
 			}
 			print '</td><td width="35%" valign="top">' ;
 
-			// SVN Browsing
+			// Browsing
 			echo $HTML->boxTop(_('Repository History'));
 			echo $this->getDetailedStats(array('group_id'=>$group_id)).'<p>';
 			if ($this->browserDisplayable ($project)) {
@@ -220,8 +164,6 @@
 		}
 	}
 	
-
-
 	function c($v) {
 		if ($v) {
 			return 'checked="checked"';

Modified: trunk/gforge/plugins/scmcpold/common/CpoldPlugin.class.php
===================================================================
--- trunk/gforge/plugins/scmcpold/common/CpoldPlugin.class.php	2009-08-27 13:39:48 UTC (rev 7984)
+++ trunk/gforge/plugins/scmcpold/common/CpoldPlugin.class.php	2009-08-27 13:39:59 UTC (rev 7985)
@@ -74,7 +74,30 @@
 		return ;
 	}
 
+	function createOrUpdateRepo ($params) {
+		$group_id = $params['group_id'] ;
 
+		$project =& group_get_object($group_id);
+		if (!$project || !is_object($project)) {
+			return false;
+		} elseif ($project->isError()) {
+			return false;
+		}
+		
+		if (! $project->usesPlugin ($this->name)) {
+			return false;
+		}
+
+		$repo = $this->cpold_root . '/' . $project->getUnixName() ;
+		$unix_group = 'scm_' . $project->getUnixName() ;
+
+		system ("chgrp -R $unix_group $repo") ;
+		if ($project->enableAnonSCM()) {
+			system ("chmod -R g+wXs,o+rX-w $repo") ;
+		} else {
+			system ("chmod -R g+wXs,o-rwx $repo") ;
+		}
+	}
   }
 
 // Local Variables:




More information about the Fusionforge-commits mailing list