* @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb; class config_php_file { /** @var string phpBB Root Path */ protected $phpbb_root_path; /** @var string php file extension */ protected $php_ext; /** * Indicates whether the php config file has been loaded. * * @var bool */ protected $config_loaded = false; /** * The content of the php config file * * @var array */ protected $config_data = array(); /** * The path to the config file. (Default: $phpbb_root_path . 'config.' . $php_ext) * * @var string */ protected $config_file; private $defined_vars; /** * Constructor * * @param string $phpbb_root_path phpBB Root Path * @param string $php_ext php file extension */ function __construct($phpbb_root_path, $php_ext) { $this->phpbb_root_path = $phpbb_root_path; $this->php_ext = $php_ext; $this->config_file = $this->phpbb_root_path . 'config.' . $this->php_ext; } /** * Set the path to the config file. * * @param string $config_file */ public function set_config_file($config_file) { $this->config_file = $config_file; $this->config_loaded = false; } /** * Returns an associative array containing the variables defined by the config file. * * @return array Return the content of the config file or an empty array if the file does not exists. */ public function get_all() { $this->load_config_file(); return $this->config_data; } /** * Return the value of a variable defined into the config.php file or null if the variable does not exist. * * @param string $variable The name of the variable * @return mixed Value of the variable or null if the variable is not defined. */ public function get($variable) { $this->load_config_file(); return isset($this->config_data[$variable]) ? $this->config_data[$variable] : null; } /** * Load the config file and store the information. * * @return null */ protected function load_config_file() { if (!$this->config_loaded && file_exists($this->config_file)) { $this->defined_vars = get_defined_vars(); require($this->config_file); $this->config_data = array_diff_key(get_defined_vars(), $this->defined_vars); $this->config_loaded = true; } } /** * Convert either 3.0 dbms or 3.1 db driver class name to 3.1 db driver class name. * * If $dbms is a valid 3.1 db driver class name, returns it unchanged. * Otherwise prepends phpbb\db\driver\ to the dbms to convert a 3.0 dbms * to 3.1 db driver class name. * * @param string $dbms dbms parameter * @return string driver class * @throws \RuntimeException */ public function convert_30_dbms_to_31($dbms) { // Note: this check is done first because mysqli extension // supplies a mysqli class, and class_exists($dbms) would return // true for mysqli class. // However, per the docblock any valid 3.1 driver name should be // recognized by this function, and have priority over 3.0 dbms. if (strpos($dbms, 'phpbb\db\driver') === false && class_exists('phpbb\db\driver\\' . $dbms)) { return 'phpbb\db\driver\\' . $dbms; } if (class_exists($dbms)) { // Additionally we could check that $dbms extends phpbb\db\driver\driver. // http://php.net/manual/en/class.reflectionclass.php // Beware of possible performance issues: // http://stackoverflow.com/questions/294582/php-5-reflection-api-performance // We could check for interface implementation in all paths or // only when we do not prepend phpbb\db\driver\. /* $reflection = new \ReflectionClass($dbms); if ($reflection->isSubclassOf('phpbb\db\driver\driver')) { return $dbms; } */ return $dbms; } throw new \RuntimeException("You have specified an invalid dbms driver: $dbms"); } } ystemd Mageia Installer and base platform for many utilitiesThierry Vignaud [tv]
summaryrefslogtreecommitdiffstats
path: root/perl-install/fsedit.pm
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2005-12-18 12:19:48 +0000
committerPascal Rigaux <pixel@mandriva.com>2005-12-18 12:19:48 +0000
commit575a03f47cd0de3af62c1b2f2685324943feb08a (patch)
tree9bfa52546c95d150f52074fb439c35abdcf6364d /perl-install/fsedit.pm
parent2e45a61245d60946c6864f4d8eaeccec5f363ef9 (diff)
downloaddrakx-575a03f47cd0de3af62c1b2f2685324943feb08a.tar
drakx-575a03f47cd0de3af62c1b2f2685324943feb08a.tar.gz
drakx-575a03f47cd0de3af62c1b2f2685324943feb08a.tar.bz2
drakx-575a03f47cd0de3af62c1b2f2685324943feb08a.tar.xz
drakx-575a03f47cd0de3af62c1b2f2685324943feb08a.zip
allow auto allocating partitions without giving a {mntpoint}
Diffstat (limited to 'perl-install/fsedit.pm')
-rw-r--r--perl-install/fsedit.pm13
1 files changed, 8 insertions, 5 deletions
diff --git a/perl-install/fsedit.pm b/perl-install/fsedit.pm
index ee2227538..ef632a9f7 100644
--- a/perl-install/fsedit.pm
+++ b/perl-install/fsedit.pm
@@ -346,7 +346,7 @@ sub suggest_part {
my $has_swap = any { isSwap($_) } fs::get::fstab($all_hds);
my @local_suggestions =
- grep { !fs::get::has_mntpoint($_->{mntpoint}, $all_hds) || isSwap($_) && !$has_swap }
+ grep { !$_->{mntpoint} && !$_->{VG_name} || !fs::get::has_mntpoint($_->{mntpoint}, $all_hds) || isSwap($_) && !$has_swap }
grep { !$_->{hd} || $_->{hd} eq $part->{rootDevice} }
@$suggestions;
@@ -364,7 +364,7 @@ sub suggest_part {
foreach ('options', 'lv_name', 'encrypt_key', 'device_LABEL', 'prefer_device_LABEL', 'primaryOrExtended') {
$part->{$_} = $best->{$_} if $best->{$_};
}
- 1;
+ $best;
}
sub suggestions_mntpoint {
@@ -431,15 +431,18 @@ sub add {
sub allocatePartitions {
my ($all_hds, $to_add) = @_;
+ my @to_add = @$to_add;
+
foreach my $part_ (fs::get::holes($all_hds)) {
my ($start, $size, $dev) = @$part_{"start", "size", "rootDevice"};
- my $part;
- while (suggest_part($part = { start => $start, size => 0, maxsize => $size, rootDevice => $dev },
- $all_hds, $to_add)) {
+ my ($part, $suggested);
+ while ($suggested = suggest_part($part = { start => $start, size => 0, maxsize => $size, rootDevice => $dev },
+ $all_hds, \@to_add)) {
my $hd = fs::get::part2hd($part, $all_hds);
add($hd, $part, $all_hds, { primaryOrExtended => $part->{primaryOrExtended} });
$size -= $part->{size} + $part->{start} - $start;
$start = $part->{start} + $part->{size};
+ @to_add = grep { $_ != $suggested } @to_add;
}
}
}