Example #1
0
     die;
     break;
 }
 if ($pdo) {
     chmod($installer_root . '/../../framework/db', 0777);
     chmod($installer_root . '/../../framework/db/cashmusic.sqlite', 0777);
 }
 // push in all the tables
 try {
     $pdo->exec(file_get_contents($installer_root . '/../../framework/php/settings/sql/cashmusic_db_sqlite.sql'));
 } catch (PDOException $e) {
     echo "\nOh. Shit. Something's wrong: Couldn't write to the database. {$e}\n\n";
     die;
     break;
 }
 $user_email = readStdin("\nMain system login email address: ");
 $system_salt = md5($user_email . time());
 $user_password = substr(md5($system_salt . 'password'), 4, 7);
 $password_hash = hash_hmac('sha256', $user_password, $system_salt);
 $data = array('email_address' => $user_email, 'password' => $password_hash, 'is_admin' => true, 'api_key' => $api_key = hash_hmac('md5', time() . $password_hash . rand(976654, 1234567267), $system_salt) . substr((string) time(), 6), 'api_secret' => hash_hmac('sha256', time() . $password_hash . rand(976654, 1234567267), $system_salt), 'creation_date' => time());
 $query = "INSERT INTO people (email_address,password,is_admin,api_key,api_secret,creation_date) VALUES (:email_address,:password,:is_admin,:api_key,:api_secret,:creation_date)";
 try {
     $q = $pdo->prepare($query);
 } catch (PDOException $e) {
     echo "\nOh. Shit. Something's wrong: Couldn't prepare query. {$e}\n\n";
     die;
     break;
 }
 try {
     $success = $q->execute($data);
 } catch (PDOException $e) {
Example #2
0
    if ($update->hasPostInstructions()) {
        echo PHP_EOL . '===================================' . PHP_EOL;
        echo $update->getPostInstructions();
        echo PHP_EOL . '===================================' . PHP_EOL;
    }
} else {
    echo sprintf(PHP_EOL . 'Sorry, an unexpected error has occured : %s' . PHP_EOL, $updateError->getMessage());
    print $updateError->getTraceAsString() . PHP_EOL;
    print "Trace: " . PHP_EOL;
    foreach ($update->getLogs() as $log) {
        echo sprintf('[%s] %s' . PHP_EOL, $log[0], $log[1]);
    }
    if (true === $backup) {
        while (1) {
            echo "Would you like to restore the backup database ? (Y/n)" . PHP_EOL;
            $rep = readStdin(true);
            if ($rep == 'y') {
                echo "Database restore started. Wait, it could take a while..." . PHP_EOL;
                if (false === $update->restoreDb()) {
                    echo sprintf(PHP_EOL . 'Sorry, your database can\'t be restore. Try to do it manually : %s' . PHP_EOL, $update->getBackupFile());
                    exit(5);
                } else {
                    echo "Database successfully restore." . PHP_EOL;
                    exit(5);
                }
                break;
            } elseif ($rep == 'n') {
                exit(0);
            }
        }
    }
Example #3
0
            }
        }
    }
}
if (!defined('STDIN')) {
    // force CLI, the browser is *so* 2007...
    echo "Please run installer from the command line. usage:<br / >&gt; php installers/php/dev_installer.php";
} else {
    if (count($argv) < 2) {
        echo "\nWrong. Usage: php manifest_builder.php <RELEASE FILES DIRECTORY>\n";
    } else {
        echo "\n\n                       /)-_-(/\n" . "                        (o o)\n" . "                .-----__/\\o/\n" . "               /  __      /\n" . "           \\__/\\ /  \\_\\ |/\n" . "                \\/\\     ||\n" . "            o   //     ||\n" . "           xxx  |\\     |\\ \n" . "\n\n" . "          C A S H  M U S I C\n" . "           RELEASE PROFILER\n\n";
        $version = readStdin('Version number: ');
        $release_date = time();
        $schema_change = readStdin("\nSchema change for upgrades? (y/n): ", false, 'n');
        $script_needed = readStdin("\nScripting needed for upgrades? (y/n): ", false, 'n');
        if ($schema_change == 'y') {
            $schema_change = 'true';
        } else {
            $schema_change = 'false';
        }
        if ($script_needed == 'y') {
            $script_needed = 'true';
        } else {
            $script_needed = 'false';
        }
        $profile = "{\n\t\"version\":{$version},\n\t\"releasedate\":{$release_date},\n\t\"schemachange\":{$schema_change},\n\t\"scriptneeded\":{$script_needed},\n\t\"blobs\":{\n";
        profile_directory($argv[1], $argv[1], $profile);
        $profile = rtrim($profile, ",\n");
        $profile .= "\n\t}\n}";
        file_put_contents($argv[1] . '/release_profile.json', $profile);
Example #4
0
         // push in all the tables
         try {
             $pdo->exec(file_get_contents($installer_root . '/../../framework/settings/sql/cashmusic_db_sqlite.sql'));
             $success = true;
         } catch (PDOException $e) {
             echo "\nOh. Shit. Something's wrong: Couldn't write to the database. {$e}\n\n";
             die;
             break;
         }
     }
 }
 if ($success) {
     $user_email = readStdin("\nLogin email address: ");
     $user_password = readStdin("Login password: "******"\nUse defaut system salt? (y/n): ", false, 'y');
     $force_hmac = readStdin("\nForce HMAC hash? (test 5.2 without crypt) (y/n): ", false, 'n');
     if (strtolower(substr($default_salt, 0, 1)) == 'y') {
         $system_salt = 'I was born of sun beams; Warming up our limbs';
     } else {
         $system_salt = md5($user_email . time());
     }
     if (!defined('CRYPT_BLOWFISH')) {
         define('CRYPT_BLOWFISH', 0);
     }
     if (!defined('CRYPT_SHA512')) {
         define('CRYPT_SHA512', 0);
     }
     if (!defined('CRYPT_SHA256')) {
         define('CRYPT_SHA256', 0);
     }
     if (CRYPT_BLOWFISH + CRYPT_SHA512 + CRYPT_SHA256 && strtolower(substr($force_hmac, 0, 1)) != 'y') {
Example #5
0
         }
         // push in all the tables
         try {
             $pdo->exec(file_get_contents($installer_root . '/../../framework/php/settings/sql/cashmusic_db_sqlite.sql'));
             $success = true;
         } catch (PDOException $e) {
             echo "\nOh. Shit. Something's wrong: Couldn't write to the database. {$e}\n\n";
             die;
             break;
         }
     }
 }
 if ($success) {
     $user_email = readStdin("\nLogin email address: ");
     $user_password = readStdin("Login password: "******"\nUse defaut system salt? (y/n): ", false, 'y');
     if (strtolower(substr($default_salt, 0, 1)) == 'y') {
         $system_salt = 'I was born of sun beams; Warming up our limbs';
     } else {
         $system_salt = md5($user_email . time());
     }
     $password_hash = hash_hmac('sha256', $user_password, $system_salt);
     $data = array('email_address' => $user_email, 'password' => $password_hash, 'is_admin' => true, 'api_key' => $api_key = hash_hmac('md5', time() . $password_hash . rand(976654, 1234567267), $system_salt) . substr((string) time(), 6), 'api_secret' => hash_hmac('sha256', time() . $password_hash . rand(976654, 1234567267), $system_salt), 'creation_date' => time());
     $query = "INSERT INTO people (email_address,password,is_admin,api_key,api_secret,creation_date) VALUES (:email_address,:password,:is_admin,:api_key,:api_secret,:creation_date)";
     try {
         $q = $pdo->prepare($query);
         $success = $q->execute($data);
     } catch (PDOException $e) {
         echo "\nOh. Shit. Something's wrong. Couldn't add the user to the database. {$e}\n\n";
         die;
         break;
Example #6
0
function main()
{
    $nick = getNickFromArgs();
    $mapData = null;
    $charData = null;
    // This will force everyone into creating a Dynasty save.
    // We patching shit, yo.
    $dynPatch = false;
    $dynPath = getSaveFilePath($nick, SaveFileType::Dynasty);
    if (!file_exists($dynPath)) {
        saveGame($nick, SaveFileType::Dynasty);
        $dynPatch = true;
    }
    if (!checkIfNewGame($nick)) {
        // Load character save data.
        $charFilePath = getSaveFilePath($nick, SaveFileType::Character);
        $charData = FileIO::UnserializeFile($charFilePath);
        $charDataDirty = false;
        // Load map save data.
        $mapFilePath = getSaveFilePath($nick, SaveFileType::Map);
        $mapData = FileIO::UnserializeFile($mapFilePath);
        $mapDataDirty = false;
        // Load dynasty save data.
        $dynFilePath = getSaveFilePath($nick, SaveFileType::Dynasty);
        $dynData = FileIO::UnserializeFile($dynFilePath);
        $dynDataDirty = false;
        // Put everyone into the dynasty initialisation state, just this once.
        //$notYetPatched	= !isset($charData->patched);
        $notYetPatched = !isset($dynData->initialised);
        $notPatching = $charData->state != GameStates::DynastyInit;
        if (empty($dynData) || $notYetPatched && $notPatching) {
            $charData->patchState = $charData->state;
            $charData->patchPrevState = $charData->previousState;
            DEBUG_echo("Patching in Dynasty...");
            StateManager::ChangeState($charData, GameStates::DynastySplash);
        }
        // Patch the stat changes in.
        doStatPatchIfNeeded($charData);
        // Ensure it's sane.
        if (empty($charData) || empty($mapData)) {
            echo "ERROR: Save data's f****d.\n";
            exit(3);
        }
        // Read STDIN for input.
        $input = readStdin();
        switch ($charData->state) {
            case GameStates::DynastySplash:
                DEBUG_echo("DynastySplash");
                echo "Your Dynasty begins, and needs a name. Choose your name wisely - you cannot alter history.\n";
                StateManager::ChangeState($charData, GameStates::DynastyInit);
                $dynData->initialised = true;
                $charDataDirty = true;
                $dynDataDirty = true;
                break;
            case GameStates::DynastyInit:
                DEBUG_echo("DynastyInit");
                // Validate input.
                $validName = preg_match("/^[a-zA-Z]{1,16}\$/", $input, $output);
                if (!$validName) {
                    echo "Please enter a valid name. Letters only, between 1 and 16 characters.\n";
                    return;
                }
                $dynData->name = $input;
                $output = "The Dynasty of {$input} begins! Onwards, to adventure!";
                echo "{$output}\n";
                // Hook back up to where we were.
                $charData->state = $charData->patchState;
                $charData->previousState = $charData->patchPrevState;
                $charDataDirty = true;
                $dynDataDirty = true;
                break;
            case GameStates::NameSelect:
                DEBUG_echo("NameSelect");
                $validName = preg_match("/^[a-zA-Z]{1,16}\$/", $input, $output);
                if (!$validName) {
                    echo "Please enter a valid name. Letters only, between 1 and 16 characters.\n";
                    exit(13);
                }
                $output = "Please choose a class for {$input} {$dynData->name}: ";
                global $classSelect;
                foreach ($classSelect->commands as $fragment) {
                    $output .= "{$fragment->displayString}, ";
                }
                $output = rtrim($output, ", ") . "\n";
                echo $output;
                $charData->name = $input;
                StateManager::ChangeState($charData, GameStates::ClassSelect);
                $charDataDirty = true;
                break;
            case GameStates::ClassSelect:
                DEBUG_echo("ClassSelect");
                $input = strtolower($input);
                $setClass = classSelect($input, $charData, $dynData, $charData->name);
                if ($setClass) {
                    StateManager::ChangeState($charData, GameStates::FirstPlay);
                    $charDataDirty = true;
                }
                break;
                // Initialise the characters
            // Initialise the characters
            case GameStates::FirstPlay:
                DEBUG_echo("FirstPlay");
                firstPlay($charData, $dynData);
                StateManager::ChangeState($charData, GameStates::Adventuring);
                // purposeful fall-through!
                // The main loop for when we're romping around.
            // purposeful fall-through!
            // The main loop for when we're romping around.
            case GameStates::Adventuring:
                DEBUG_echo("Adventuring");
                adventuring($input, $charData, $mapData, $dynData);
                $charDataDirty = true;
                $mapDataDirty = true;
                break;
                // Sleepy nap time.
            // Sleepy nap time.
            case GameStates::Resting:
                DEBUG_echo("Resting");
                resting($input, $charData, $mapData);
                $charDataDirty = true;
                break;
                // IT'S CLOBBERING TIME
            // IT'S CLOBBERING TIME
            case GameStates::Combat:
                DEBUG_echo("Combat");
                combat($input, $charData, $mapData, $dynData);
                $charDataDirty = true;
                $mapDataDirty = true;
                break;
            case GameStates::Spellcasting:
                DEBUG_echo("Spellcasting");
                $nonCombat = isset($charData->previousState) && $charData->previousState != GameStates::Combat;
                spellcasting($input, $charData, $mapData, $nonCombat);
                $charDataDirty = true;
                $mapDataDirty = true;
                break;
            case GameStates::Looting:
                DEBUG_echo("Looting");
                looting($input, $charData, $mapData);
                $charDataDirty = true;
                $mapDataDirty = true;
                break;
            case GameStates::LevelUp:
                DEBUG_echo("LevelUp");
                levelUp($input, $charData, $mapData);
                $charDataDirty = true;
                break;
            case GameStates::UsingItem:
                DEBUG_echo("UsingItem");
                $nonCombat = isset($charData->previousState) && $charData->previousState != GameStates::Combat;
                usingItem($input, $charData, $mapData, $nonCombat);
                $charDataDirty = true;
                break;
            case GameStates::Shopping:
                DEBUG_echo("Shopping");
                shopping($input, $charData, $mapData);
                $charDataDirty = true;
                $mapDataDirty = true;
                break;
            case GameStates::Dynasty:
                DEBUG_echo("Dynasty");
                dynasty($input, $charData, $mapData, $dynData);
                $charDataDirty = true;
                $dynDataDirty = true;
                break;
            default:
                break;
        }
    } else {
        // Initialise the character save.
        saveGame($nick, SaveFileType::Character);
        // Initialise the map save.
        saveGame($nick, SaveFileType::Map);
        // Prompt for name/dynasty select.
        if (!$dynPatch) {
            echo "How do you want to alter your Dynasty?\n";
        } else {
            echo "Welcome to blaventure!\n";
        }
    }
    if (isset($charData) && $charDataDirty) {
        saveGame($nick, SaveFileType::Character, $charData);
    }
    if (isset($mapData) && $mapDataDirty) {
        saveGame($nick, SaveFileType::Map, $mapData);
    }
    if (isset($dynData) && $dynDataDirty) {
        saveGame($nick, SaveFileType::Dynasty, $dynData);
    }
}