1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
<?php
/*
Copyright (c) 2001 - 2006 Ampache.org
All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
require('../lib/init.php');
require_once(conf('prefix') . '/lib/debug.lib.php');
require_once(conf('prefix') . '/modules/horde/Browser.php');
if (!$GLOBALS['user']->has_access(100)) {
access_denied();
exit();
}
$action = scrub_in($_REQUEST['action']);
/* Switch on action boys */
switch ($action) {
/* This re-generates the config file comparing
* /config/ampache.cfg to .cfg.dist
*/
case 'generate_config':
$configfile = conf('prefix') . '/config/ampache.cfg.php';
$distfile = conf('prefix') . '/config/ampache.cfg.php.dist';
/* Load the current config file */
$current = read_config($configfile, 0, 0);
/* Start building the new config file */
$handle = fopen($distfile,'r');
$dist = fread($handle,filesize($distfile));
fclose($handle);
$data = explode("\n",$dist);
/* Run throught the lines and set our settings */
foreach ($data as $line) {
/* Attempt to pull out Key */
if (preg_match("/^#?([\w\d]+)\s+=\s+[\"]{1}(.*?)[\"]{1}$/",$line,$matches)
|| preg_match("/^#?([\w\d]+)\s+=\s+[\']{1}(.*?)[\']{1}$/", $line, $matches)
|| preg_match("/^#?([\w\d]+)\s+=\s+[\'\"]{0}(.*)[\'\"]{0}$/",$line,$matches)) {
$key = $matches[1];
$value = $matches[2];
/* Check to see if Key on source side is an array */
if (is_array($current[$key])) {
/* We need to add all values of this key to the new config file */
$line = '';
$array_value[$key] = true;
foreach ($current[$key] as $sub_value) {
$line .= $key . " = \"" . $sub_value . "\"\n";
}
unset($current[$key]);
} // is array
/* Put in the current value */
elseif (isset($current[$key])) {
$line = $key . " = \"" . $current[$key] . "\"";
unset($current[$key]);
} // if set
elseif (isset($array_value[$key])) {
$line = '';
}
} // if key
$final .= $line . "\n";
} // end foreach dist file contents
/* Set Correct Headers */
$browser = new Browser();
$browser->downloadHeaders("ampache.cfg.php","text/plain",false,filesize("config/ampache.cfg.php.dist"));
echo $final;
break;
/* Check this version against ampache.org's record */
case 'check_version':
break;
default:
// Rien a faire
break;
} // end switch
?>
|