/** * Retorna arquivos adicionados para commit * * @access public * @return array - lista de StdClass com configuração do commit */ public function getAdicionados() { $aArquivos = array(); $aArquivosSalvos = $this->getDataBase()->selectAll("SELECT * FROM add_files WHERE project_id = {$this->getProjeto()->id}"); foreach ($aArquivosSalvos as $oDadosArquivo) { $oArquivo = new Arquivo(); $oArquivo->setArquivo($oDadosArquivo->file); $oArquivo->setTagMensagem($oDadosArquivo->tag_message); $oArquivo->setTagArquivo($oDadosArquivo->tag_file); $oArquivo->setMensagem($oDadosArquivo->message); $oArquivo->setTipo($oDadosArquivo->type); $oArquivo->setComando((int) $oDadosArquivo->command); $aArquivos[$oDadosArquivo->file] = $oArquivo; } return $aArquivos; }
public function processarArquivos() { $aArquivos = array(); $sMensagem = '<info>Arquivo %s: %s</info>'; /** * Procura os arquivos para adicionar */ foreach ($this->oInput->getArgument('arquivos') as $sArquivo) { if (!file_exists($sArquivo)) { continue; } if (is_dir($sArquivo)) { continue; } $aArquivos[] = realpath($sArquivo); } if (empty($aArquivos)) { $aArquivos = array_keys($this->aArquivos); } foreach ($aArquivos as $sArquivo) { $lAdicionado = true; if (!empty($this->aArquivos[$sArquivo])) { $lAdicionado = false; $oArquivo = $this->aArquivos[$sArquivo]; if (in_array($oArquivo->getComando(), array(Arquivo::COMANDO_ADICIONAR_TAG, Arquivo::COMANDO_REMOVER_TAG))) { $oArquivo = new Arquivo(); $oArquivo->setArquivo($sArquivo); } } else { $oArquivo = new Arquivo(); $oArquivo->setArquivo($sArquivo); } foreach ($this->oInput->getOptions() as $sArgumento => $sValorArgumento) { if (empty($sValorArgumento)) { continue; } switch ($sArgumento) { /** * Mensagem do commit */ case 'message': $oArquivo->setMensagem($this->oInput->getOption('message')); break; /** * Tag do commit */ /** * Tag do commit */ case 'tag': $oArquivo->setTagMensagem($this->oInput->getOption('tag')); break; /** * Tag do commit */ /** * Tag do commit */ case 'tag-commit': $iTag = $this->oInput->getOption('tag-commit'); $oArquivo->setTagMensagem($iTag); $oArquivo->setTagArquivo($iTag); $oArquivo->setComando(Arquivo::COMANDO_COMMITAR_TAGGEAR); break; /** * Commit para adicionar fonte ou funcionalidade */ /** * Commit para adicionar fonte ou funcionalidade */ case 'added': $oArquivo->setTipo('ADD'); break; /** * Commit para modificacoes do layout ou documentacao */ /** * Commit para modificacoes do layout ou documentacao */ case 'style': $oArquivo->setTipo('STYLE'); break; /** * Commit para correcao de erros */ /** * Commit para correcao de erros */ case 'fixed': $oArquivo->setTipo('FIX'); break; /** * Commit para melhorias */ /** * Commit para melhorias */ case 'enhanced': $oArquivo->setTipo('ENH'); break; } } $iTagArquivo = $oArquivo->getTagArquivo(); $iTagRelease = $this->getApplication()->getConfig()->get('tag')->release; if (empty($iTagArquivo) && !empty($iTagRelease)) { $oArquivo->setTagArquivo($iTagRelease); } $this->aArquivos[$sArquivo] = $oArquivo; if ($lAdicionado) { $this->oOutput->writeln(sprintf($sMensagem, 'adicionado a lista', $this->getApplication()->clearPath($sArquivo))); } else { $this->oOutput->writeln(sprintf($sMensagem, 'atualizado', $this->getApplication()->clearPath($sArquivo))); } } if (!empty($this->aArquivos)) { $this->oArquivoModel->salvarAdicionados($this->aArquivos); } }