utility scripts to composer install from local satis cache
[tine20] / scripts / packaging / composer / satisDirectoryGlitch.php
1 <?php
2 /**
3  * @package     HelperScripts
4  * @subpackage  Composer
5  * @license     http://www.gnu.org/licenses/agpl.html AGPL Version 3
6  * @author      Paul Mehrer <p.mehrer@metaways.de>
7  * @copyright   Copyright (c) 2016 Metaways Infosystems GmbH (http://www.metaways.de)
8  */
9
10 if ( $_SERVER['argc'] < 2)
11     usage();
12
13 $dir = $_SERVER['argv'][1];
14 if ( !is_dir($dir) ) {
15     echo $dir . ' is no directory' . PHP_EOL;
16     usage();
17 }
18
19
20 iterateDir(new DirectoryIterator($dir));
21
22
23
24 function iterateDir(DirectoryIterator $iterator)
25 {
26     foreach ($iterator as $dir) {
27         if (!$dir->isDir() || strpos($dir->getFilename(), '.') === 0) continue;
28         if ('src' === $dir->getFilename()) {
29             $realName = basename($dir->getPath());
30             $baseDir = dirname($dir->getPath());
31             if ( !rename($dir->getPathname(), $baseDir.'/myTMP') ) break;
32             exec('rm -rf '.$baseDir.'/'.$realName);
33             rename($baseDir.'/myTMP', $baseDir.'/'.$realName);
34             break;
35         }
36         iterateDir(new DirectoryIterator($dir->getPathname()));
37     }
38 }
39
40
41 function usage()
42 {
43     echo __FILE__ . ' path/to/vendordir' . PHP_EOL;
44     exit(1);
45 }