summaryrefslogtreecommitdiff
path: root/core/controllers
diff options
context:
space:
mode:
authorTim Almdal <tnalmdal@shaw.ca>2009-01-18 03:12:00 +0000
committerTim Almdal <tnalmdal@shaw.ca>2009-01-18 03:12:00 +0000
commit245cb11c5855d023d9bd4f7e693f0eafaeb7deb7 (patch)
tree837d6e9c8a003e3917dd2b3d40e8506c01f710f6 /core/controllers
parentb60e790e905f754dfa3ad603cb15a5838aeca4ab (diff)
Clean up the var directory creation script
Diffstat (limited to 'core/controllers')
-rw-r--r--core/controllers/welcome.php29
1 files changed, 20 insertions, 9 deletions
diff --git a/core/controllers/welcome.php b/core/controllers/welcome.php
index 876e48f9..d91bf0f1 100644
--- a/core/controllers/welcome.php
+++ b/core/controllers/welcome.php
@@ -492,22 +492,33 @@ class Welcome_Controller extends Template_Controller {
}
$var_dir = dir(VARPATH);
- $init_g3 = array("<?php defined(\"SYSPATH\") or die(\"No direct script access.\");",
- "function create_var_directories() {");
+ $init_g3 = array("<?php defined(\"SYSPATH\") or die(\"No direct script access.\");");
- // @todo generate a check for the existance of the var directory
+ $init_g3 = array_merge($init_g3, array(
+ "if (!file_exists(VARPATH)) {",
+ " if (!mkdir(VARPATH)) {",
+ " throw new Exception(\"Unable to create directory '\" . VARPATH . \"'\");",
+ " }",
+ " chmod(VARPATH, 0777);",
+ "}"));
+
+ $sub_dirs = array();
while (false !== $entry = $var_dir->read()) {
if ($entry == "." || $entry == "..") {
continue;
}
- if (is_dir(VARPATH . $entry)) {
- $init_g3[] = " if (!@mkdir(\"$entry\");) {";
- $init_g3[] = " throw new Exception(\"Unable to create directory '$entry'\");";
- $init_g3[] = " }";
+ if (is_dir(VARPATH . $entry) & $entry != "g3_installer") {
+ $sub_dirs[] = "\"$entry\"";
}
- }
- $init_g3[] = "}";
+ }
$var_dir->close();
+
+ $init_g3 = array_merge($init_g3, array(
+ "foreach (array(" . implode(", ", $sub_dirs) . ") as \$dir) {",
+ " if (!@mkdir(\$dir)) {",
+ " throw new Exception(\"Unable to create directory '\$dir'\");",
+ " }",
+ "}"));
$install_data = VARPATH . "g3_installer/";
if (!file_exists($install_data)) {