75 ucfirst(str_replace(
'pear_installer_role_',
'', strtolower(get_class($this)))));
76 if (PEAR::isError($roleInfo)) {
79 if (!$roleInfo[
'locationconfig']) {
82 if ($roleInfo[
'honorsbaseinstall']) {
83 $dest_dir = $save_destdir = $this->config->get($roleInfo[
'locationconfig'], $layer,
85 if (!empty($atts[
'baseinstalldir'])) {
86 $dest_dir .= DIRECTORY_SEPARATOR . $atts[
'baseinstalldir'];
88 } elseif ($roleInfo[
'unusualbaseinstall']) {
89 $dest_dir = $save_destdir = $this->config->get($roleInfo[
'locationconfig'],
90 $layer, $pkg->getChannel()) . DIRECTORY_SEPARATOR . $pkg->getPackage();
91 if (!empty($atts[
'baseinstalldir'])) {
92 $dest_dir .= DIRECTORY_SEPARATOR . $atts[
'baseinstalldir'];
95 $dest_dir = $save_destdir = $this->config->get($roleInfo[
'locationconfig'],
96 $layer, $pkg->getChannel()) . DIRECTORY_SEPARATOR . $pkg->getPackage();
98 if (dirname($file) !=
'.' && empty($atts[
'install-as'])) {
99 $dest_dir .= DIRECTORY_SEPARATOR . dirname($file);
101 if (empty($atts[
'install-as'])) {
102 $dest_file = $dest_dir . DIRECTORY_SEPARATOR . basename($file);
104 $dest_file = $dest_dir . DIRECTORY_SEPARATOR . $atts[
'install-as'];
106 $orig_file = $tmp_path . DIRECTORY_SEPARATOR . $file;
109 $ds2 = DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR;
111 list($dest_dir, $dest_file, $orig_file) = preg_replace(array(
'!\\\\+!',
'!/!',
"!$ds2+!"),
112 array(DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR,
113 DIRECTORY_SEPARATOR),
114 array($dest_dir, $dest_file, $orig_file));
115 return array($save_destdir, $dest_dir, $dest_file, $orig_file);