Пример #1
0
 /**
  * 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;
 }
Пример #2
0
 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);
     }
 }
Пример #3
0
 /**
  * Executa comando
  *
  * @param Object $oInput
  * @param Object $oOutput
  * @access public
  * @return void
  */
 public function execute($oInput, $oOutput)
 {
     $oArquivoModel = new ArquivoModel();
     $aArquivosAdicionados = $oArquivoModel->getAdicionados();
     $aArquivos = array();
     $aOpcoes = array('added', 'delete');
     $sComando = null;
     $aArquivosParametro = $oInput->getArgument('arquivos');
     /**
      * Verifica arquivos passados por parametro 
      */
     foreach ($aArquivosParametro as $sArquivo) {
         if (!file_exists($sArquivo)) {
             $oOutput->writeln("<error>Arquivo não encontradao: {$sArquivo}</error>");
             continue;
         }
         $sArquivo = realpath($sArquivo);
         /**
          * Arquivo já adicionado a lista, pega ele 
          */
         if (!empty($aArquivosAdicionados[$sArquivo])) {
             $aArquivos[$sArquivo] = $aArquivosAdicionados[$sArquivo];
             continue;
         }
         $oArquivo = new Arquivo();
         $oArquivo->setArquivo($sArquivo);
         /**
          * Arquivos não adicionados ainda a lista 
          */
         $aArquivos[$sArquivo] = $oArquivo;
     }
     /**
      * Nenhum arquivo passado por parametro, poe tag em todos os arquivos ja adicionados 
      */
     if (empty($aArquivos)) {
         $aArquivos = $aArquivosAdicionados;
     }
     foreach ($oInput->getOptions() as $sArgumento => $sValorArgumento) {
         if (empty($sValorArgumento) || !in_array($sArgumento, $aOpcoes)) {
             continue;
         }
         if (!empty($sComando)) {
             throw new Exception("Mais de uma comando usado(added, delete)");
         }
         if (empty($sComando)) {
             $sComando = $sArgumento;
         }
     }
     if (empty($sComando)) {
         $sComando = 'added';
     }
     /**
      * Tag do arquivo, sem prefixo T 
      */
     $iTag = ltrim(strtoupper($oInput->getArgument('tag')), 'T');
     $aArquivosTaggeados = $oArquivoModel->taggear($aArquivos, $iTag, $sComando);
     if (!empty($aArquivosTaggeados)) {
         foreach ($aArquivosTaggeados as $sArquivo) {
             $oOutput->writeln("<info>Arquivo com tag atualizada: " . $this->getApplication()->clearPath($sArquivo) . "</info>");
         }
     }
 }