Example #1
0
 public function modulosNeoArray(Request $request, $nmModulos = null)
 {
     $logger = $this->get('logger');
     // Abre e faz o parsing do arquivo
     $cacic_helper = new Helper\OldCacicHelper($this->container->get('kernel'));
     $iniFile = $cacic_helper->iniFile();
     //$itemArray = parse_ini_file($iniFile);
     //$teste = parse_ini_file($iniFile, true);
     // Varre o diretório em busca dos módulos
     $rootDir = $this->container->get('kernel')->getRootDir();
     $webDir = $rootDir . "/../web/";
     $downloadsDir = $webDir . "downloads/";
     $cacicDir = $downloadsDir . "cacic/";
     $linuxDir = $cacicDir . "linux/";
     $windowsDir = $cacicDir . "windows/";
     $outrosDir = $downloadsDir . "outros/";
     // Constrói array de arquivos e hashes
     $saida = array();
     $base_url = $request->getBaseUrl();
     $base_url = preg_replace('/\\/app.*.php/', "", $base_url);
     // Verifica se diretório existe
     $current_dir = $cacicDir . "current";
     if (!file_exists($current_dir)) {
         $this->get('session')->getFlashBag()->add('notice', 'Não foi possível encontrar o diretório dos Agentes. Faça upload dos agentes.');
         $logger->info("Não foi possível encontrar o diretório dos Agentes. Faça upload dos agentes.");
         return array();
     }
     // Primeiro tratamos agentes Linux
     // A regra é que o agente mais atual estará na pasta current
     $current = basename(readlink($current_dir));
     $finder = new Finder();
     $finder->depth('== 0');
     $finder->directories()->in($cacicDir);
     foreach ($finder as $version) {
         if ($version->getFileName() == 'current') {
             $tipos = new Finder();
             $tipos->depth('== 0');
             $tipos->directories()->in($version->getRealPath());
             foreach ($tipos as $tipo_so) {
                 // Aqui considera somente a última versão
                 $agentes = new Finder();
                 $agentes->depth('== 0');
                 $agentes->files()->in($tipo_so->getRealPath());
                 foreach ($agentes as $file) {
                     $filename = 'cacic/' . $version->getFileName() . '/' . $tipo_so->getFileName() . "/" . $file->getFileName();
                     if (!empty($nmModulos)) {
                         // Filtra por nome de módulo
                         if (!in_array($filename, $nmModulos)) {
                             continue;
                         }
                     }
                     $saida[$tipo_so->getFileName()][$file->getFileName()] = array('name' => $file->getFileName(), 'download_url' => $base_url . '/downloads/cacic/' . $version->getFileName() . '/' . $tipo_so->getFileName() . "/" . $file->getFileName(), 'hash' => md5_file($file->getRealPath()), 'size' => $file->getSize(), 'filename' => $filename, 'versao' => $current, 'tipoSo' => $tipo_so->getFileName());
                 }
             }
         } else {
             continue;
         }
     }
     // Retorna o array com todos os resultados
     return $saida;
 }