private static function check_dependencies_missing_from_system(&$required_test_dependencies, &$generic_names_of_packages_needed = false) { $generic_dependencies_parser = new pts_exdep_generic_parser(); $vendor_dependencies_parser = new pts_exdep_platform_parser(self::vendor_identifier('package-list')); $kernel_architecture = phodevi::read_property('system', 'kernel-architecture'); $needed_os_packages = array(); foreach ($required_test_dependencies as $package => $dependents) { if ($vendor_dependencies_parser->is_package($package)) { $package_data = $vendor_dependencies_parser->get_package_data($package); $arch_compliant = empty($package_data['arch_specific']) || in_array($kernel_architecture, $package_data['arch_specific']); if (!empty($package_data['file_check'])) { $add_dependency = self::file_missing_check($package_data['file_check']); } else { if ($generic_dependencies_parser->is_package($package)) { // If the OS/platform-specific package didn't supply a file check list, obtain it from the generic listing $generic_package_data = $generic_dependencies_parser->get_package_data($package); $add_dependency = empty($generic_package_data['file_check']) || self::file_missing_check($generic_package_data['file_check']); } } if ($add_dependency && $arch_compliant && $package_data['os_package'] != null) { if (!in_array($package_data['os_package'], $needed_os_packages)) { array_push($needed_os_packages, $package_data['os_package']); } if ($generic_names_of_packages_needed !== false && !in_array($package, $generic_names_of_packages_needed)) { array_push($generic_names_of_packages_needed, $package); } } else { unset($required_test_dependencies[$package]); } } } if (count($required_test_dependencies) > 0) { foreach ($required_test_dependencies as $i => $dependency) { $package_data = $generic_dependencies_parser->get_package_data($i); $file_present = !empty($package_data['file_check']) && !self::file_missing_check($package_data['file_check']); if ($file_present) { unset($required_test_dependencies[$i]); } } } return $needed_os_packages; }
public function get_dependency_names() { $dependency_names = array(); $exdep_generic_parser = new pts_exdep_generic_parser(); foreach ($this->get_external_dependencies() as $dependency) { if ($exdep_generic_parser->is_package($dependency)) { $package_data = $exdep_generic_parser->get_package_data($dependency); $dependency_names[] = $package_data['title']; } } return $dependency_names; }