MTrack/SCM/WorkingCopy.php
[web.mtrack] / MTrack / SCM / WorkingCopy.php
1 <?php
2  
3 abstract class MTrack_SCM_WorkingCopy {
4     public $dir;
5   
6     /** returns the root dir of the working copy */
7     function getDir() {
8         return $this->dir;
9     }
10   
11     /** add a file to the working copy */
12     abstract function addFile($path);
13     /** removes a file from the working copy */
14     abstract function delFile($path);
15     /** commit changes that are pending in the working copy */
16     abstract function commit($CS);
17     /** get an MTrackSCMFile representation of a file */
18     abstract function getFile($path);
19   
20     /** enumerates files in a path in the working copy */
21     function enumFiles($path)
22     {
23         return scandir($this->dir . DIRECTORY_SEPARATOR . $path);
24     }
25   
26     /** determines if a file exists in the working copy */
27     function file_exists($path)
28     {
29       return file_exists($this->dir . DIRECTORY_SEPARATOR . $path);
30     }
31   
32     function __destruct()
33     {
34         if (strlen($this->dir) > 1) {
35             require_once 'System.php';
36             //System::rm('-r', $this->dir);
37         }
38     }
39     function generateTempDir()
40     {
41         
42         $tn =  '/var/lib/php5/mtrackworkingdirlEwD96';
43         if (file_exists($tn)) {
44             require_once 'System.php';
45             System::rm('-rf', $tn);
46         }
47         
48         return $tn;
49
50         $tn = tempnam(ini_get('session.save_path'),'mtrackworkingdir');
51         unlink($tn);
52         return $tn;
53         
54         
55     }
56     
57     
58 }