예제 #1
0
 /**
  * Create the script for shared files.
  *
  * @param string $release_dir
  * @param string $shared_dir
  *
  * @return string
  */
 private function shareFileCommands($release_dir, $shared_dir)
 {
     if (!$this->deployment->project->sharedFiles->count()) {
         return '';
     }
     $parser = new ScriptParser();
     $script = '';
     foreach ($this->deployment->project->sharedFiles as $filecfg) {
         $pathinfo = pathinfo($filecfg->file);
         $template = 'File';
         $file = $filecfg->file;
         if (substr($file, 0, 1) === '/') {
             $file = substr($file, 1);
         }
         if (substr($file, -1) === '/') {
             $template = 'Directory';
             $file = substr($file, 0, -1);
         }
         if (isset($pathinfo['extension'])) {
             $filename = $pathinfo['filename'] . '.' . $pathinfo['extension'];
         } else {
             $filename = $pathinfo['filename'];
         }
         $script .= $parser->parseFile('deploy.Share' . $template, ['target_file' => $release_dir . '/' . $file, 'source_file' => $shared_dir . '/' . $filename]);
     }
     return PHP_EOL . $script;
 }