Exakat\Tasks\Anonymize::run PHP Метод

run() публичный Метод

public run ( )
    public function run()
    {
        if (($file = $this->config->file) !== 'stdout') {
            display("Anonymizing file {$file}\n");
            if (!file_exists($file)) {
                die('Can\'t anonymize ' . $file . ' as it doesn\'t exist' . "\n");
            }
            if (!$this->checkCompilation($file)) {
                die('Can\'t anonymize ' . $file . ' as it doesn\'t compile with PHP ' . PHP_VERSION . "\n");
            }
            $this->processFile($file);
        } else {
            $dir = $this->config->dirname;
            if (!empty($dir)) {
                if (substr($dir, -1) === '/') {
                    $dir = substr($dir, 0, -1);
                }
                if (!file_exists($dir)) {
                    die('Can\'t anonymize ' . $dir . ' as it doesn\'t exist' . "\n");
                }
                display("Anonymizing directory {$dir}\n");
                $files = rglob($dir);
                $total = 0;
                if (file_exists($dir . '.anon')) {
                    rmdirRecursive($dir . '.anon');
                }
                mkdir($dir . '.anon', 0755);
                foreach ($files as $file) {
                    if ($this->checkCompilation($file)) {
                        ++$this->strings;
                        $total += (int) $this->processFile($file, $dir . '.anon/' . $this->strings . '.php');
                    }
                }
                display("Anonymized {$total} files\n");
            } elseif (($project = $this->config->project) !== 'default') {
                display("Anonymizing project {$project}\n");
                $dir = $this->config->projects_root . '/projects/' . $project . '/' . $project;
                if (!file_exists($this->config->projects_root . '/projects/' . $project)) {
                    die('Can\'t anonymize project ' . $project . ' as it doesn\'t exist' . "\n");
                }
                if (!file_exists($this->config->projects_root . '/projects/' . $project . '/code')) {
                    die('Can\'t anonymize project ' . $project . ' as it doesn\'t have code' . "\n");
                }
                $files = $this->datastore->getCol('files', 'file');
                $path = $this->config->projects_root . '/projects/' . $this->config->project . '/code';
                $total = 0;
                if (file_exists($dir . '.anon')) {
                    rmdirRecursive($dir . '.anon');
                }
                mkdir($dir . '.anon', 0755);
                foreach ($files as $file) {
                    if ($this->checkCompilation($path . $file)) {
                        ++$this->strings;
                        $total += (int) $this->processFile($path . $file, $dir . '.anon/' . $this->strings . '.php');
                    }
                }
                display("Anonymized {$total} files\n");
            } else {
                die("Usage : php exakat anonymize -file <filename>\n                                 -d <dirname>\n                                 -p <project>\n");
            }
        }
        display('Processing file ' . $file . ' into ' . $file . ".anon\n");
    }

Usage Example

Пример #1
0
 public function execute(Config $config)
 {
     switch ($config->command) {
         case 'doctor':
             $doctor = new Tasks\Doctor($this->gremlin, $this->config);
             $doctor->run($config);
             break;
         case 'init':
             $task = new Tasks\Initproject($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'anonymize':
             $task = new Tasks\Anonymize($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'files':
             $task = new Tasks\Files($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'load':
             $task = new Tasks\Load($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'stat':
             $task = new Tasks\Stat($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'analyze':
             $task = new Tasks\Analyze($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'results':
             $task = new Tasks\Results($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'export':
             $task = new Tasks\Export($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'report':
             $task = new Tasks\Report2($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'project':
             $task = new Tasks\Project($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'magicnumber':
             $task = new Tasks\Magicnumber($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'clean':
             $task = new Tasks\Clean($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'status':
             $task = new Tasks\Status($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'help':
             $task = new Tasks\Help($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'cleandb':
             $task = new Tasks\CleanDb($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'onepage':
             $task = new Tasks\OnePage($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'update':
             $task = new Tasks\Update($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'onepagereport':
             $task = new Tasks\OnepageReport($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'phploc':
             $task = new Tasks\Phploc($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'findextlib':
             $task = new Tasks\FindExternalLibraries($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'dump':
             $task = new Tasks\Dump($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'jobqueue':
             $task = new Tasks\Jobqueue($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'queue':
             $task = new Tasks\Queue($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'test':
             $task = new Tasks\Test($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'remove':
             $task = new Tasks\Remove($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'server':
             $task = new Tasks\Server($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'upgrade':
             $task = new Tasks\Upgrade($this->gremlin, $this->config);
             $task->run($config);
             break;
         case 'version':
         default:
             $version = self::VERSION;
             $build = self::BUILD;
             $date = date('r', filemtime(__FILE__));
             echo "\n ________                 __              _    \n|_   __  |               [  |  _         / |_  \n  | |_ \\_| _   __  ,--.   | | / ]  ,--. `| |-' \n  |  _| _ [ \\ [  ]`'_\\ :  | '' <  `'_\\ : | |   \n _| |__/ | > '  < // | |, | |`\\ \\ // | |,| |,  \n|________|[__]`\\_]\\'-;__/[__|  \\_]\\'-;__/\\__/  \n                                               \n\nExakat : @ 2014-2016 Damien Seguy. \nVersion : ", $version, ' - Build ', $build, ' - ', $date, "\n";
             break;
     }
 }