function write_config_file() { global $config_values, $config_out, $platform; $config_file = platform_getConfigFile(); $config_cache = platform_getConfigCache(); _debug("Preparing to write config file to {$config_file}\n"); if (!preg_match('/^\\$%&(.*)\\$%&$/', $config_values['Settings']['Transmission Password'])) { if ($config_values['Settings']['Transmission Password']) { $config_values['Settings']['Transmission Password'] = preg_replace('/^(.*)$/', '\\$%&$1\\$%&', base64_encode($config_values['Settings']['Transmission Password'])); } else { $config_values['Settings']['Transmission Password'] = ""; } } $config_out = ";;\n;; torrentwatch config file\n;;\n\n"; if (!function_exists('group_callback')) { function group_callback($group, $key) { global $config_values, $config_out; if ($key == 'Global') { return; } $config_out .= "[{$key}]\n"; array_walk($config_values[$key], 'key_callback'); $config_out .= "\n\n"; } } if (!function_exists('key_callback')) { function key_callback($group, $key, $subkey = NULL) { global $config_values, $config_out; if (is_array($group)) { array_walk($group, 'key_callback', $key . '[]'); } else { if ($subkey) { if (!is_numeric($key)) { // What does this do? $group = "{$key} => {$group}"; } $key = $subkey; } $config_out .= "{$key} = {$group}\n"; } } } array_walk($config_values, 'group_callback'); $dir = dirname($config_file); if (!is_dir($dir)) { _debug("Creating configuration directory\n", 1); if (file_exists($dir)) { unlink($dir); } if (!mkdir($dir)) { _debug("Unable to create config directory\n", 0); return FALSE; } } $config_out = html_entity_decode($config_out); if (!($fp = fopen($config_file . "_tmp", "w"))) { _debug("read_config_file: Could not open {$config_file}\n", 0); exit(1); } if (flock($fp, LOCK_EX)) { if (fwrite($fp, $config_out)) { flock($fp, LOCK_UN); rename($config_file . "_tmp", $config_file); } if ($platform == 'NMT') { chmod($config_file, 0666); } else { chmod($config_file, 0600); } unlink($config_cache); } unset($config_out); }
break; case '-vv': $verbosity = 2; break; default: _debug("Unknown command line argument: " . $_SERVER['argv'][$i] . "\n", 0); break; } } } // // Begin Main Function // // $main_timer = timer_init(); if (file_exists(platform_getConfigFile())) { read_config_file(); } else { setup_default_config(); } if (isset($config_values['Settings']['Verbose'])) { $verbosity = $config_values['Settings']['Verbose']; } parse_args(); _debug(date("F j, Y, g:i a") . "\n", 0); if (isset($config_values['Feeds'])) { load_feeds($config_values['Feeds'], 1); feeds_perform_matching($config_values['Feeds']); } if (_isset($config_values['Settings'], 'Run Torrentwatch', FALSE) and !$test_run and $config_values['Settings']['Watch Dir']) { global $hit;