Changeset 2724
- Timestamp:
- 01/19/06 21:10:34 (3 years ago)
- Files:
-
- trunk/support/pear-package.php (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/support/pear-package.php
r2573 r2724 92 92 // TODO: Get latest modification date from CHANGES 93 93 $package['date'] = date('Y-m-d'); 94 $package['time'] = date('H:i:s'); 94 95 95 96 // Package state. Default to stable … … 142 143 } 143 144 144 $package['maintainers'] .= " <maintainer> 145 <user>{$username}</user> 146 <name>{$person['name']}</name> 147 <email>{$person['email']}</email> 148 <role>{$person['role']}</role> 149 </maintainer>"; 145 if (!array_key_exists('role', $person)) 146 { 147 $person['role'] = 'developer'; 148 } 149 150 $package['maintainers'] .= " 151 <{$person['role']}> 152 <name>{$person['name']}</name> 153 <user>{$username}</user> 154 <email>{$person['email']}</email> 155 <active>yes</active> 156 </{$person['role']}> 157 "; 150 158 } 151 159 } … … 164 172 } 165 173 166 if (!array_key_exists('version', $dependency)) 174 $dependency['min'] = ''; 175 if (array_key_exists('version', $dependency)) 167 176 { 168 177 // No version specified, the dependency just needs to exist 169 $dependency['rel'] = 'has'; 170 $dependency['version'] = ''; 178 $dependency['min'] = "<min>{$dependency['version']}</min>"; 171 179 } 172 180 … … 174 182 { 175 183 // Default to depending on PEAR packages 176 $dependency['type'] = 'pkg'; 177 } 184 $dependency['type'] = 'package'; 185 } 186 187 if (!array_key_exists('channel', $dependency)) 188 { 189 // Default to depending on packages from MidCOM repository 190 $dependency['channel'] = 'pear.midcom-project.org'; 191 } 178 192 179 193 if (strstr($requirement, '.')) … … 183 197 } 184 198 185 $package['dependencies'] .= " <dep type=\"{$dependency['type']}\" rel=\"{$dependency['rel']}\" version=\"{$dependency['version']}\">{$requirement}</dep>\n"; 199 $package['dependencies'] .= " 200 <{$dependency['type']}> 201 <name>{$requirement}</name> 202 <channel>{$dependency['channel']}</channel> 203 {$dependency['min']} 204 </{$dependency['type']}> 205 "; 186 206 } 187 207 } … … 195 215 * @return string File XML list 196 216 */ 197 function directory_list_contents($contents_string, $directory_path, $prefix = '', $baseinstalldir = null, $name = null)217 function directory_list_contents($contents_string, $directory_path, $prefix = '', $baseinstalldir = '', $name = null) 198 218 { 199 219 $directory = dir($directory_path); 200 220 201 if ($baseinstalldir)202 {203 $baseinstalldir = " baseinstalldir=\"{$baseinstalldir}\"";204 }205 206 221 if (!$name) 207 222 { … … 211 226 $prefix .= ' '; 212 227 213 $contents_string .= "{$prefix}<dir name=\"{$name}\" {$baseinstalldir}>\n";228 $contents_string .= "{$prefix}<dir name=\"{$name}\">\n"; 214 229 215 230 // List contents … … 237 252 { 238 253 // List the subdirectory 239 $contents_string = directory_list_contents($contents_string, "{$directory_path}/{$entry}", $prefix );254 $contents_string = directory_list_contents($contents_string, "{$directory_path}/{$entry}", $prefix, $baseinstalldir); 240 255 } 241 256 else … … 243 258 // List the files 244 259 // TODO: Support other roles than PHP? 245 $contents_string .= "{$prefix} <file role=\"php\">{$entry}</file>\n";260 $contents_string .= "{$prefix} <file baseinstalldir=\"{$baseinstalldir}\" name=\"{$entry}\" role=\"php\" />\n"; 246 261 } 247 262 } … … 251 266 return $contents_string; 252 267 } 253 $component['filelist'] = directory_list_contents('', $component['path'], $prefix = ' ', $component['baseinstalldir'], '/'); 268 //die($component['path']."\n"); 269 $component['filelist'] = directory_list_contents('', $component['path'], $prefix = ' ', $component['baseinstalldir'], '/'); 254 270 255 271 // Create package XML 256 $package_xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?> 257 <package version=\"1.0\"> 258 <name>{$package['name']}</name> 259 <summary>{$package['summary']}</summary> 260 <description>{$package['description']}</description> 261 <license>{$package['license']}</license> 262 263 <maintainers> 264 {$package['maintainers']} 265 </maintainers> 266 267 <release> 268 <version>{$package['version']}</version> 269 <date>{$package['date']}</date> 270 <state>{$package['state']}</state> 271 <notes>{$package['version']} {$package['state']}</notes> 272 <filelist> 273 274 {$component['filelist']} 275 </filelist> 276 </release> 277 278 <deps> 279 280 {$package['dependencies']} 281 </deps> 282 </package> 272 $package_xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> 273 <package packagerversion=\"1.4.5\" version=\"2.0\" xmlns=\"http://pear.php.net/dtd/package-2.0\" xmlns:tasks=\"http://pear.php.net/dtd/tasks-1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://pear.php.net/dtd/tasks-1.0 274 http://pear.php.net/dtd/tasks-1.0.xsd 275 http://pear.php.net/dtd/package-2.0 276 http://pear.php.net/dtd/package-2.0.xsd\"> 277 <name>{$package['name']}</name> 278 <channel>pear.midcom-project.org</channel> 279 <summary> 280 {$package['summary']} 281 </summary> 282 <description> 283 {$package['description']} 284 </description> 285 {$package['maintainers']} 286 <date>{$package['date']}</date> 287 <time>{$package['time']}</time> 288 <version> 289 <release>{$package['version']}</release> 290 <api>{$package['version']}</api> 291 </version> 292 <stability> 293 <release>{$package['state']}</release> 294 <api>{$package['state']}</api> 295 </stability> 296 <license>{$package['license']}</license> 297 <notes>{$package['version']} {$package['state']}</notes> 298 <contents>\n{$component['filelist']} </contents> 299 <dependencies> 300 <required> 301 <php> 302 <min>4.3.0</min> 303 </php> 304 <pearinstaller> 305 <min>1.4.0</min> 306 </pearinstaller> 307 {$package['dependencies']} </required> 308 </dependencies> 309 <phprelease /> 310 </package> 283 311 "; 284 312
