Add *all* the error messages to the unpacker

This commit is contained in:
Starbeamrainbowlabs 2019-09-11 12:29:09 +01:00
parent e99c5bc056
commit 8d67a8290c
Signed by: sbrl
GPG Key ID: 1BE5172E637709C2
1 changed files with 28 additions and 4 deletions

View File

@ -6,14 +6,33 @@
// ...extract it again
if(!file_exists($paths->extra_data_directory) ||
filemtime(__FILE__) > filemtime($paths->extra_data_directory)) {
$error_message_help = "<p>Have you checked that PHP has write access to the directory that <code>index.php</code> is located in (and all it's contents and subdirectories)? Try <code>sudo chown USERNAME:USERNAME -R path/to/directory</code> and <code>sudo chmod -R 0644 path/to/directory; sudo chmod -R +X path/too/directory</code>, where <code>USERNAME</code> is the username that the PHP process is running under.</p>";
if(file_exists($paths->extra_data_directory))
delete_recursive($paths->extra_data_directory, false);
else
mkdir($paths->extra_data_directory, 0700);
touch($paths->extra_data_directory);
else {
if(!mkdir($paths->extra_data_directory, 0700)) {
http_response_code(503);
exit(page_renderer::render_minimal("Unpacking error - $settings->sitename", "<p>Oops! It looks like $settings->sitename couldn't create the extra data directory to unpack additional files to.</p>$error_message_help"));
}
}
if(!touch($paths->extra_data_directory)) {
http_response_code(503);
exit(page_renderer::render_minimal("Unpacking error - $settings->sitename", "<p>Oops! It looks like $settings->sitename isn't able to change the last modified time of the extra data directory.</p>$error_message_help"));
}
$temp_file = tmpfile();
if($temp_file === false) {
http_response_code(503);
exit(page_renderer::render_minimal("Unpacking error - $settings->sitename", "<p>Oops! $settings->sitename wasn't able to create a new temporary file with <code>tmpfile()</code>. Perhaps your server is mis-configured?</p>"));
}
$source = fopen(__FILE__, "r");
if($source === false) {
http_response_code(503);
exit(page_renderer::render_minimal("Unpacking error - $settings->sitename", "<p>Oops! $settings->sitename wasn't able to open itself (i.e. <code>index.php</code>) for reading. $error_message_help</p>"));
}
fseek($source, __COMPILER_HALT_OFFSET__);
stream_copy_to_stream($source, $temp_file);
@ -24,5 +43,10 @@ if(!file_exists($paths->extra_data_directory) ||
$extractor->open($temp_filename);
$extractor->extractTo($paths->extra_data_directory);
$extractor->close();
fclose($temp_file);
if(fclose($temp_file) === false) {
http_response_code(503);
exit(page_renderer::render_minimal("Unpacking error - $settings->sitename", "<p>Oops! $settings->sitename wasn't able to close the temporary file that it created with <code>tmpfile()</code>. Perhaps your server is mis-configured?</p>"));
}
unset($error_message_help);
}