protected function interact(InputInterface $input, OutputInterface $output)
    {
        $questionHelper = $this->getHelper('question');
        $formatter = $this->getHelper('formatter');
        $rootDir = $this->getRootDir();
        $fs = new Filesystem();
        $appPath = explode('/', $rootDir);
        $appName = $appPath[count($appPath) - 2];

        $this->initConfig($fs, $rootDir);
        $output->writeln([$formatter->formatSection('SETUP', 'Project settings'), '']);

        $deployData = $this->configureDeploy($input, $output, $questionHelper, $appName);
        $deploy = new DeployGenerator($deployData, $rootDir);
        $this->generate($deploy);

        $output->writeln(['', " > generating <comment>{$appName}/config/deploy.rb</comment>"]);
        $output->writeln(['<info>Successfully created.</info>', '']);
        $output->writeln([$formatter->formatSection('PRODUCTION', 'Remote server / SSH settings'), '']);

        $sshProps = $this->configureSSH($input, $output, $questionHelper, $deployData);
        $staging = new StagingGenerator($sshProps, $this->getCapistranoDeployDir());
        $yamlStaging = new YamlStagingGenerator($sshProps, $this->getStagingsConfigDir());

        $this->generateMany([$staging, $yamlStaging]);

        return $output->writeln('<comment>Remote server successfully configured</comment>');
    }
protected function interact(InputInterface $input, OutputInterface $output)
    {
        $questionHelper = $this->getHelper('question');
        $formatter = $this->getHelper('formatter');
        $rootDir = $this->getRootDir();
        $fs = new Filesystem();
        $appPath = explode('/', $rootDir);
        $appName = $appPath[count($appPath) - 2];

        $this->initConfig($fs, $rootDir);
        $output->writeln([$formatter->formatSection('SETUP', 'Project settings'), '']);

        $deployData = $this->configureDeploy($input, $output, $questionHelper, $appName);
        $deploy = new DeployGenerator($deployData, $rootDir);
        $this->generate($deploy);

        $output->writeln(['', " > generating <comment>{$appName}/config/deploy.rb</comment>"]);
        $output->writeln(['<info>Successfully created.</info>', '']);
        $output->writeln([$formatter->formatSection('PRODUCTION', 'Remote server / SSH settings'), '']);

        $sshProps = $this->configureSSH($input, $output, $questionHelper, $deployData);
        $staging = new StagingGenerator($sshProps, $this->getCapistranoDeployDir());
        $yamlStaging = new YamlStagingGenerator($sshProps, $this->getStagingsConfigDir());

        $this->generateMany([$staging, $yamlStaging]);

        return $output->writeln('<comment>Remote server successfully configured</comment>');
    }
protected function interact ( InputInterface $ input , OutputInterface $ output ) { $ questionHelper = $ this -> getHelper ( 'question' ) ; $ formatter = $ this -> getHelper ( 'formatter' ) ; $ rootDir = $ this -> getRootDir ( ) ; $ fs = new Filesystem ( ) ; $ appPath = explode ( '/' , $ rootDir ) ; $ appName = $ appPath [ count ( $ appPath ) - 2 ] ; $ this -> initConfig ( $ fs , $ rootDir ) ; $ output -> writeln ( [ $ formatter -> formatSection ( 'SETUP' , 'Project settings' ) , '' ] ) ; $ deployData = $ this -> configureDeploy ( $ input , $ output , $ questionHelper , $ appName ) ; $ deploy = new DeployGenerator ( $ deployData , $ rootDir ) ; $ this -> generate ( $ deploy ) ; $ output -> writeln ( [ '' , " > generating <comment>{$appName}/config/deploy.rb</comment>" ] ) ; $ output -> writeln ( [ '<info>Successfully created.</info>' , '' ] ) ; $ output -> writeln ( [ $ formatter -> formatSection ( 'PRODUCTION' , 'Remote server / SSH settings' ) , '' ] ) ; $ sshProps = $ this -> configureSSH ( $ input , $ output , $ questionHelper , $ deployData ) ; $ staging = new StagingGenerator ( $ sshProps , $ this -> getCapistranoDeployDir ( ) ) ; $ yamlStaging = new YamlStagingGenerator ( $ sshProps , $ this -> getStagingsConfigDir ( ) ) ; $ this -> generateMany ( [ $ staging , $ yamlStaging ] ) ; return $ output -> writeln ( '<comment>Remote server successfully configured</comment>' ) ; }
Configures deployment.

@param InputInterface  $input
@param OutputInterface $output

@return OutputInterface
Configures deployment .