| 
<?phpnamespace App\Commands;
 
 use \Jackbooted\Config\Cfg;
 use \Jackbooted\DB\DB;
 
 class InstallationCLI extends \Jackbooted\Html\WebPage {
 
 public static function init () {
 self::$log = \Jackbooted\Util\Log4PHP::logFactory ( __CLASS__ );
 }
 
 public static function initialize()
 {
 $dbType     = Cfg::get( 'local-driver' );
 
 switch ( $dbType ) {
 case DB::SQLITE:
 $dbFileName = Cfg::get( 'local-host' );
 echo "Checking that the file $dbFileName exists\n";
 
 if ( file_exists( $dbFileName ) ) {
 echo "Database exists ($dbFileName)\n";
 }
 else {
 echo "Creating empty database\n";
 touch( $dbFileName );
 }
 break;
 
 case DB::MYSQL:
 $fldHostName = Cfg::get( 'local-host' );
 $fldDBName   = Cfg::get( 'local-db' );
 $fldUsername = Cfg::get( 'local-user' );
 $fldPassword = Cfg::get( 'local-pass' );
 try {
 $dbh = new \PDO( "mysql:host=$fldHostName", $fldUsername, $fldPassword );
 $dbh->exec( "CREATE DATABASE IF NOT EXISTS $fldDBName" ) or die( print_r( $dbh->errorInfo(), true ) );
 }
 catch (PDOException $e) {
 die( "DB ERROR: ". $e->getMessage() );
 }
 break;
 
 default:
 die( "Unsupported DB Type: $dbType" );
 }
 
 if ( count ( \Jackbooted\DB\DBMaintenance::getTableList() ) == 0 ) {
 // Put in the base data
 $sqlFileName = Cfg::get ( 'tmp_path' ) . '/base_database.sql';
 if ( file_exists( $sqlFileName ) ) {
 echo "Running the commands in $sqlFileName against the database\n";
 foreach ( explode( ';', file_get_contents( $sqlFileName ) ) as $statement ) {
 DB::exec( DB::DEF, $statement );
 }
 }
 else {
 die( "Base Database file does not exists ($sqlFileName) aborting\n" );
 }
 }
 else {
 die( "Database already seems to be set up." );
 }
 
 
 echo "audititing Table - AlertsDAO\n";
 ( new \App\Models\AlertsDAO )->auditTable();
 return '';
 }
 }
 
 |