public function getCacheFileName($language = NULL)
 {
     $parentCacheFileName = $this->parentReceiverGroup->getCacheFileName($language);
     $singleCacheFileName = $parentCacheFileName . '_single';
     $file = fopen($parentCacheFileName, 'r');
     $singleLineContents = fgets($file);
     fclose($file);
     file_put_contents($singleCacheFileName, $singleLineContents);
     return $singleCacheFileName;
 }
 private function processReceiverGroup(ReceiverGroup $receiverGroup, $language = NULL)
 {
     $cacheFileName = $receiverGroup->getCacheFileName($language);
     $jqProcess = escapeshellarg('cat ' . escapeshellcmd($receiverGroup->getReceiverSource()->getSourceFileName()) . ' | jq -c ' . escapeshellarg($this->convertFilterIntoJqExpression($receiverGroup->getFilter($language))) . ' > ' . escapeshellcmd($cacheFileName) . ' ; wc -l < ' . escapeshellcmd($cacheFileName) . ' > ' . escapeshellcmd($cacheFileName . '.lines'));
     $finalProcess = 'nohup /bin/bash -c ' . $jqProcess . ' &';
     $this->systemLogger->log('Starting process: ' . $finalProcess);
     $proc = new Process($finalProcess);
     $proc->start();
 }
 /**
  * @param ReceiverGroup $receiverGroup
  */
 public function previewReceiverGroupAction(ReceiverGroup $receiverGroup)
 {
     $presets = $this->contentDimensionPresetSource->getAllPresets();
     $languages = array_keys($presets['language']['presets']);
     $exampleDataPerLanguage = array();
     foreach ($languages as $language) {
         $file = fopen($receiverGroup->getCacheFileName($language), 'r');
         $contents = fgets($file);
         fclose($file);
         $exampleDataPerLanguage[$language] = array('numberOfReceivers' => $receiverGroup->getNumberOfReceivers($language), 'singleLine' => json_decode($contents, TRUE));
     }
     $this->view->assign('exampleDataPerLanguage', $exampleDataPerLanguage);
     $this->view->assign('receiverGroup', $receiverGroup);
 }