protected function copyDockerServiceFiles()
    {
        $root = ProjectX::projectRoot() . "/docker/services";
        $configs = $this->getProjectServiceConfigs();
        $project_type = $this->getProjectType();

        foreach ($this->getServices() as $name => $info) {
            if (!isset($info['type'])) {
                continue;
            }
            $type = $info['type'];

            /** @var DockerService $instance */
            $instance = self::loadService($this, $type, $name);

            if (isset($info['version'])) {
                $instance->setVersion($info['version']);
            }

            if (isset($configs[$type])) {
                $instance->setConfigs($configs[$type]);
            }

            foreach ($instance->templateFiles() as $template => $temp_info) {
                $paths = [
                    "{$type}/{$project_type}/{$template}",
                    "{$type}/{$template}"
                ];
                foreach ($paths as $path) {
                    $filepath = $this->getTemplateFilePath($path);

                    if (false !== $filepath) {
                        $filesystem = $this->taskFilesystemStack();
                        $destination = "{$root}/{$type}";

                        if (!file_exists($destination)) {
                            $filesystem->mkdir($destination);
                        }
                        $filename = basename($filepath);
                        $destination = "{$destination}/{$filename}";

                        $overwrite = isset($temp_info['overwrite'])
                            ? $temp_info['overwrite']
                            : false;

                        $status = $filesystem
                            ->copy($filepath, $destination, $overwrite)
                            ->run();

                        if ($status->wasSuccessful()
                            && !empty($temp_info['variables'])) {
                            $file_task = $this
                                ->taskWriteToFile($destination)
                                ->append();

                            foreach ($temp_info['variables'] as $name => $value) {
                                $file_task->place($name, $value);
                            }

                            $file_task->run();
                        }

                        break;
                    }
                }
            }
        }

        return $this;
    }
protected function copyDockerServiceFiles()
    {
        $root = ProjectX::projectRoot() . "/docker/services";
        $configs = $this->getProjectServiceConfigs();
        $project_type = $this->getProjectType();

        foreach ($this->getServices() as $name => $info) {
            if (!isset($info['type'])) {
                continue;
            }
            $type = $info['type'];

            /** @var DockerService $instance */
            $instance = self::loadService($this, $type, $name);

            if (isset($info['version'])) {
                $instance->setVersion($info['version']);
            }

            if (isset($configs[$type])) {
                $instance->setConfigs($configs[$type]);
            }

            foreach ($instance->templateFiles() as $template => $temp_info) {
                $paths = [
                    "{$type}/{$project_type}/{$template}",
                    "{$type}/{$template}"
                ];
                foreach ($paths as $path) {
                    $filepath = $this->getTemplateFilePath($path);

                    if (false !== $filepath) {
                        $filesystem = $this->taskFilesystemStack();
                        $destination = "{$root}/{$type}";

                        if (!file_exists($destination)) {
                            $filesystem->mkdir($destination);
                        }
                        $filename = basename($filepath);
                        $destination = "{$destination}/{$filename}";

                        $overwrite = isset($temp_info['overwrite'])
                            ? $temp_info['overwrite']
                            : false;

                        $status = $filesystem
                            ->copy($filepath, $destination, $overwrite)
                            ->run();

                        if ($status->wasSuccessful()
                            && !empty($temp_info['variables'])) {
                            $file_task = $this
                                ->taskWriteToFile($destination)
                                ->append();

                            foreach ($temp_info['variables'] as $name => $value) {
                                $file_task->place($name, $value);
                            }

                            $file_task->run();
                        }

                        break;
                    }
                }
            }
        }

        return $this;
    }
protected function copyDockerServiceFiles ( ) { $ root = ProjectX :: projectRoot ( ) . "/docker/services" ; $ configs = $ this -> getProjectServiceConfigs ( ) ; $ project_type = $ this -> getProjectType ( ) ; foreach ( $ this -> getServices ( ) as $ name => $ info ) { if ( ! isset ( $ info [ 'type' ] ) ) { continue ; } $ type = $ info [ 'type' ] ; /** @var DockerService $instance */ $ instance = self :: loadService ( $ this , $ type , $ name ) ; if ( isset ( $ info [ 'version' ] ) ) { $ instance -> setVersion ( $ info [ 'version' ] ) ; } if ( isset ( $ configs [ $ type ] ) ) { $ instance -> setConfigs ( $ configs [ $ type ] ) ; } foreach ( $ instance -> templateFiles ( ) as $ template => $ temp_info ) { $ paths = [ "{$type}/{$project_type}/{$template}" , "{$type}/{$template}" ] ; foreach ( $ paths as $ path ) { $ filepath = $ this -> getTemplateFilePath ( $ path ) ; if ( false !== $ filepath ) { $ filesystem = $ this -> taskFilesystemStack ( ) ; $ destination = "{$root}/{$type}" ; if ( ! file_exists ( $ destination ) ) { $ filesystem -> mkdir ( $ destination ) ; } $ filename = basename ( $ filepath ) ; $ destination = "{$destination}/{$filename}" ; $ overwrite = isset ( $ temp_info [ 'overwrite' ] ) ? $ temp_info [ 'overwrite' ] : false ; $ status = $ filesystem -> copy ( $ filepath , $ destination , $ overwrite ) -> run ( ) ; if ( $ status -> wasSuccessful ( ) && ! empty ( $ temp_info [ 'variables' ] ) ) { $ file_task = $ this -> taskWriteToFile ( $ destination ) -> append ( ) ; foreach ( $ temp_info [ 'variables' ] as $ name => $ value ) { $ file_task -> place ( $ name , $ value ) ; } $ file_task -> run ( ) ; } break ; } } } } return $ this ; }
Copy docker service template files.
Copy docker service template files .