<?php
ini_set('include_path', '.');

require_once('env-parser.php');
require_once('file-util.php');
require_once('db-util.php');
require_once('app-util.php');
require_once('upgrade-app.php');

function admin_password_crypt($value)
{
    return md5($value);
}


$config_files = array( '/' => array( array('header.inc.php.in', 'inc/header.inc.php'), array('cmd.php.in', 'periodic/cmd.php'), array('notifies.php.in', 'periodic/notifies.php'), array('periodic.file.in', 'periodic/periodic.file'), array('tags.php.in', 'periodic/tags.php'), array('header_sws_.inc.php.in', 'ray/modules/global/inc/header.inc.php')), '/cgi-bin' => array() );
$schema_files = array( 'schema.sql' => 'main' );
$reconf_schema_files = array(  );
$remove_schema_files = array( 'remove.sql' => 'main' );

$psa_params = array (  );
$db_ids = array ( 'main' );
$web_ids = array ( 'backup', 'cache', 'groups/gallery', 'groups/orca/cachejs', 'groups/orca/log', 'langs', 'media/images', 'banners', 'blog', 'classifieds', 'gallery', 'profile', 'profile_bg', 'promo', 'sdating', 'sharingImages', 'media/sound', 'media/video', 'orca/cachejs', 'orca/log', 'tmp', 'inc/menu_content.inc.php', 'inc/params.inc.php', 'ray/modules/board/files', 'ray/modules/im/files', 'ray/modules/movie/files', 'ray/modules/mp3/files', 'ray/modules/music/files', 'ray/modules/board/xml/config.xml', 'ray/modules/board/xml/langs.xml', 'ray/modules/board/xml/main.xml', 'ray/modules/board/xml/skins.xml', 'ray/modules/chat/xml/config.xml', 'ray/modules/chat/xml/langs.xml', 'ray/modules/chat/xml/main.xml', 'ray/modules/chat/xml/skins.xml', 'ray/modules/global/app/ffmpeg.exe', 'ray/modules/global/inc/cron.inc.php', 'ray/modules/global/js/integration.js', 'ray/modules/global/xml/config.xml', 'ray/modules/global/xml/main.xml', 'ray/modules/im/xml/config.xml', 'ray/modules/im/xml/langs.xml', 'ray/modules/im/xml/main.xml', 'ray/modules/im/xml/skins.xml', 'ray/modules/movie/xml/config.xml', 'ray/modules/movie/xml/langs.xml', 'ray/modules/movie/xml/main.xml', 'ray/modules/movie/xml/skins.xml', 'ray/modules/mp3/xml/config.xml', 'ray/modules/mp3/xml/langs.xml', 'ray/modules/mp3/xml/main.xml', 'ray/modules/mp3/xml/skins.xml', 'ray/modules/music/xml/config.xml', 'ray/modules/music/xml/langs.xml', 'ray/modules/music/xml/main.xml', 'ray/modules/music/xml/skins.xml', 'ray/modules/presence/xml/config.xml', 'ray/modules/presence/xml/langs.xml', 'ray/modules/presence/xml/main.xml', 'ray/modules/presence/xml/skins.xml', 'ray/modules/video/xml/config.xml', 'ray/modules/video/xml/langs.xml', 'ray/modules/video/xml/main.xml', 'ray/modules/video/xml/skins.xml', '/' );
$settings_params = array ( 'admin_name', 'site_title', 'site_email', 'notify_email', 'bugreport_email', 'php_path', 'mogrify_path', 'convert_path', 'composite_path' );
$settings_enum_params = array (  );
$crypt_settings_params = array ( 'admin_password' );

$psa_modify_hash = get_psa_modify_hash($psa_params);
$db_modify_hash = get_db_modify_hash($db_ids);
$web_modify_hash = get_web_modify_hash($web_ids);
$settings_modify_hash = get_settings_modify_hash($settings_params);
$settings_enum_modify_hash = get_settings_enum_modify_hash($settings_enum_params);
$crypt_settings_modify_hash = get_crypt_settings_modify_hash($crypt_settings_params);

$additional_modify_hash = get_additional_modify_hash();

if(count($argv) < 2)
{
    print "Usage: configure (install | upgrade <version> | configure | remove)\n";
    exit(1);
}

$command = $argv[1];

if($command == "upgrade")
{
    if($argv[2] && $argv[3]){
	upgrade_app($argv[2], $argv[3], $config_files, $db_ids, $psa_modify_hash, $db_modify_hash, $settings_modify_hash, $crypt_settings_modify_hash, $settings_enum_modify_hash, $additional_modify_hash);
	exit(0);
    }
    else{
	print "Error: upgrade version or release not specified.\n";
	exit(1);
    }
}

if($command == "install")
{
    configure($config_files, $schema_files, $db_ids, $psa_modify_hash, $db_modify_hash, $settings_modify_hash, $crypt_settings_modify_hash, $settings_enum_modify_hash, $additional_modify_hash);
    exit(0);
}

if($command == "remove")
{
    remove_app($remove_schema_files, $db_ids, $psa_modify_hash, $db_modify_hash, $settings_modify_hash, $crypt_settings_modify_hash, $settings_enum_modify_hash, $additional_modify_hash);
    exit(0);
}

if($command == "configure")
{
    configure($config_files, $reconf_schema_files, $db_ids, $psa_modify_hash, $db_modify_hash, $settings_modify_hash, $crypt_settings_modify_hash, $settings_enum_modify_hash, $additional_modify_hash);
    exit(0);
}

print "Error: unknown command $command.\n";
exit(1);

?>