Esempio n. 1
0
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);
}
Esempio n. 2
0
                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;