#!/usr/bin/env php <?php // Red pconfig utility if(!file_exists('include/cli_startup.php')) { echo 'Run pconfig from the top level Hubzilla web directory, as util/pconfig <args>' . PHP_EOL; exit(1); } require_once('include/cli_startup.php'); require_once('include/zot.php'); cli_startup(); $helpArgs = getopt('h', array('help')); if (count($helpArgs) === 1) { echo <<<'EndOfOutput' Gets, sets, or lists personal (per channel) configuration settings. Usage: util/pconfig util/pconfig <channel_id> util/pconfig <channel_id> <family> util/pconfig <channel_id> <family> <key> util/pconfig <channel_id> <family> <key> <value> util/pconfig List all channel IDs util/pconfig <channel_id> Displays all of the the channel's config entries util/pconfig <channel_id> <family> Displays all of the channel's config entries for the specified family (system, database, etc) util/pconfig <channel_id> <family> <key> Displays single config entry for the specified family and key util/pconfig <channel_id> <family> <key> <value> Set config entry for specified family and key to value and display result Notes: For site-wide configuration settings, use util/config Details for configuration options can be found at: EndOfOutput; echo ' ' . App::get_baseurl() . '/help/hidden_configs' . PHP_EOL . PHP_EOL; return; } if($argc > 2 && strpos($argv[2],'.')) { $x = explode('.',$argv[2]); $argv = [ $argv[0], $argv[1], $x[0], $x[1], (($argc > 3) ? $argv[3] : null) ]; $argc = $argc + 1; } if($argc > 4) { set_pconfig($argv[1],$argv[2],$argv[3],$argv[4]); build_sync_packet($argv[1]); echo "pconfig[{$argv[1]}][{$argv[2]}][{$argv[3]}] = " . get_pconfig($argv[1],$argv[2],$argv[3]) . "\n"; } if($argc == 4) { echo "pconfig[{$argv[1]}][{$argv[2]}][{$argv[3]}] = " . get_pconfig($argv[1],$argv[2],$argv[3]) . "\n"; } if($argc == 3) { load_pconfig($argv[1],$argv[2]); foreach(App::$config[$argv[1]][$argv[2]] as $k => $x) { echo "pconfig[{$argv[1]}][{$argv[2]}][{$k}] = " . $x . "\n"; } } if($argc == 2) { $r = q("select * from pconfig where uid = " . intval($argv[1])); if($r) { foreach($r as $rr) { echo "pconfig[{$rr['uid']}][{$rr['cat']}][{$rr['k']}] = " . $rr['v'] . "\n"; } } } if($argc == 1) { $r = q("select channel_id, channel_name from channel"); if($r) { foreach($r as $rr) { echo sprintf('%4u %s', $rr['channel_id'], $rr['channel_name']) . PHP_EOL; } } }