<?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');

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


$config_files = array( '/' => array( array('configuration.php.in', 'configuration.php')) );
$schema_files = array( 'schema.sql' => 'main' );
$reconf_schema_files = array( 'reconfigure.sql' => 'main' );
$remove_schema_files = array( 'remove.sql' => 'main' );

$psa_params = array (  );
$db_ids = array ( 'main' );
$web_ids = array ( 'administrator/backups', 'cache', 'images/banners', 'images/stories', 'uploadfiles', 'configuration.php', '/' );
$settings_params = array ( 'admin_login', 'admin_email', 'site_name', 'theme', 'locale', 'country_locale', 'user_time_zone' );
$settings_enum_params = array ( 'theme' => array( 'rhuk_solarflare_ii' => 'rhuk_solarflare_ii' ), 'locale' => array( 'en-US' => 'english', 'fr-FR' => 'french', 'de-DE' => 'german' ), 'user_time_zone' => array( 'utc__12' => '-12', 'utc__11' => '-11', 'utc__10' => '-10', 'utc__9_5' => '-9.5', 'utc__9' => '-9', 'utc__8' => '-8', 'utc__7' => '-7', 'utc__6' => '-6', 'utc__5' => '-5', 'utc__4' => '-4', 'utc__3_5' => '-3.5', 'utc__3' => '-3', 'utc__2' => '-2', 'utc__1' => '-1', 'utc0' => '0', 'utc1' => '1', 'utc2' => '2', 'utc3' => '3', 'utc3_5' => '3.5', 'utc4' => '4', 'utc4_5' => '4.5', 'utc5' => '5', 'utc5_5' => '5.5', 'utc5_75' => '5.75', 'utc6' => '6', 'utc6_5' => '6.5', 'utc7' => '7', 'utc8' => '8', 'utc8_75' => '8.75', 'utc9' => '9', 'utc9_5' => '9.5', 'utc10' => '10', 'utc10_5' => '10.5', 'utc11' => '11', 'utc11_5' => '11.5', 'utc12' => '12', 'utc12_75' => '12.75', 'utc13' => '13', 'utc14' => '14' ) );
$crypt_settings_params = array ( 'admin_passwd' );

$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);

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

$command = $argv[1];

if($command == "upgrade")
{
    print "FIXME: $command is not implemented.\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);
    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);
    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);
    exit(0);
}

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

?>