public static function init() { self::$flags = 0; self::$os_identifier_sha1 = sha1(phodevi::read_property('system', 'vendor-identifier')); self::$is_live_cd = 1 << 1; self::$no_network_communication = 1 << 2; self::$no_openbenchmarking_reporting = 1 << 3; self::$user_agreement_skip = 1 << 4; self::$skip_md5_checks = 1 << 5; self::$remove_test_on_completion = 1 << 6; self::$no_phodevi_cache = 1 << 7; self::$no_external_dependencies = 1 << 8; self::$upload_to_openbenchmarking = 1 << 9; switch (self::$os_identifier_sha1) { case 'b28d6a7148b34595c5b397dfcf5b12ac7932b3dc': // Moscow 2011-04 client self::$flags = self::$is_live_cd | self::$no_network_communication | self::$no_openbenchmarking_reporting | self::$user_agreement_skip | self::$skip_md5_checks | self::$remove_test_on_completion; break; } if (pts_client::read_env('NO_FILE_HASH_CHECKS') != false || pts_client::read_env('NO_MD5_CHECKS') != false) { self::$flags |= self::$skip_md5_checks; } if (pts_config::read_bool_config('PhoronixTestSuite/Options/Testing/RemoveTestInstallOnCompletion', 'FALSE')) { self::$flags |= self::$remove_test_on_completion; } if (pts_config::read_bool_config('PhoronixTestSuite/Options/Testing/AlwaysUploadResultsToOpenBenchmarking', 'FALSE')) { self::$flags |= self::$upload_to_openbenchmarking; } if (pts_client::read_env('NO_PHODEVI_CACHE') != false) { self::$flags |= self::$no_phodevi_cache; } if (pts_client::read_env('NO_EXTERNAL_DEPENDENCIES') != false || pts_client::read_env('SKIP_EXTERNAL_DEPENDENCIES') == 1) { // NO_EXTERNAL_DEPENDENCIES was deprecated in PTS 3.6 and replaced by more versatile SKIP_EXTERNAL_DEPENDENCIES self::$flags |= self::$no_external_dependencies; } }
public static function user_agreement_check($command) { $pso = pts_storage_object::recover_from_file(PTS_CORE_STORAGE); if ($pso == false) { return false; } $config_md5 = $pso->read_object('user_agreement_cs'); $current_md5 = md5_file(PTS_PATH . 'pts-core/user-agreement.txt'); if (($config_md5 != $current_md5 || pts_config::read_user_config('PhoronixTestSuite/Options/OpenBenchmarking/AnonymousUsageReporting', 'UNKNOWN') == 'UNKNOWN') && !PTS_IS_DAEMONIZED_SERVER_PROCESS && getenv('PTS_SILENT_MODE') != 1 && $config_md5 != 'enterprise-agree') { $prompt_in_method = pts_client::check_command_for_function($command, 'pts_user_agreement_prompt'); $user_agreement = file_get_contents(PTS_PATH . 'pts-core/user-agreement.txt'); if ($prompt_in_method) { $user_agreement_return = call_user_func(array($command, 'pts_user_agreement_prompt'), $user_agreement); if (is_array($user_agreement_return)) { if (count($user_agreement_return) == 3) { list($agree, $usage_reporting) = $user_agreement_return; } else { $agree = array_shift($user_agreement_return); $usage_reporting = -1; } } else { $agree = $user_agreement_return; $usage_reporting = -1; } } if ($prompt_in_method == false || $usage_reporting == -1) { pts_client::$display->generic_heading('User Agreement'); echo wordwrap($user_agreement, 65); $agree = pts_flags::user_agreement_skip() || pts_user_io::prompt_bool_input('Do you agree to these terms and wish to proceed', true); if (pts_flags::no_openbenchmarking_reporting()) { $usage_reporting = false; } else { $usage_reporting = $agree ? pts_user_io::prompt_bool_input('Enable anonymous usage / statistics reporting', true) : -1; } } if ($agree) { echo PHP_EOL; $pso->add_object('user_agreement_cs', $current_md5); $pso->save_to_file(PTS_CORE_STORAGE); } else { pts_client::exit_client('In order to run the Phoronix Test Suite, you must agree to the listed terms.'); } pts_config::user_config_generate(array('PhoronixTestSuite/Options/OpenBenchmarking/AnonymousUsageReporting' => pts_config::bool_to_string($usage_reporting))); } }