~george-edison55/charms/precise/statusnet/added-maintainer

« back to all changes in this revision

Viewing changes to opt/update_statusnet_config

  • Committer: Nathan Osman
  • Date: 2011-11-29 07:00:43 UTC
  • Revision ID: admin@quickmediasolutions.com-20111129070043-xqpxjd0ty3qc6j4t
Almost finished filling in the rest of the hooks, added two utility scripts, and made some corrections here and there.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/php
 
2
<?php
 
3
 
 
4
//===============================
 
5
// This small PHP script updates
 
6
//    the configuration file
 
7
//===============================
 
8
 
 
9
// This is the path to the config file we are making
 
10
// changes to.
 
11
define('CONFIG_FILE', '/var/www/config.php');
 
12
 
 
13
// Get the current contents of the config file
 
14
$contents = file_get_contents(CONFIG_FILE);
 
15
 
 
16
// Read the configuration options to be changed from STDIN
 
17
while(TRUE)
 
18
{
 
19
    // Read a line from STDIN that contains '='
 
20
    $input_line = fgets(STDIN);
 
21
    
 
22
    if($input_line === FALSE)
 
23
        break;
 
24
    if(strpos($input_line, '=') === FALSE)
 
25
        continue;
 
26
    
 
27
    // Extract the key / value from the line
 
28
    list($key, $value) = explode('=', trim($input_line), 2);
 
29
    
 
30
    // Make sure that the key is in the form 'group/setting'
 
31
    if(strpos($key, '/') === FALSE)
 
32
        continue;
 
33
    
 
34
    // Split the key apart
 
35
    list($key1, $key2) = explode('/', trim($key), 2);
 
36
    
 
37
    // Generate the pattern
 
38
    $pattern = '/^\$config\[\'' . preg_quote($key1) . '\'\]\[\''
 
39
                                . preg_quote($key2) . '\'\] =.*$/m';
 
40
    
 
41
    // Prepare $value
 
42
    $value = str_replace("'", "\\'", $value);
 
43
    
 
44
    // Check to see if the pattern exists
 
45
    if(preg_match($pattern, $contents))
 
46
        $contents = preg_replace($pattern,
 
47
                                 "\$config['$key1']['$key2'] = '$value';",
 
48
                                 $contents);
 
49
    // Append it to the config if it doesn't exist
 
50
    else
 
51
        $contents .= "\n\$config['$key1']['$key2'] = '$value';"
 
52
}
 
53
 
 
54
// Open the file for writing and write the new contents
 
55
$file = fopen(CONFIG_FILE, 'w');
 
56
fwrite($file, $contents);
 
57
fclose($file);
 
58
 
 
59
?>