From 8042e13af6718bb6a2bd89066ccdb6700bed1029 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Mon, 25 May 2015 02:51:10 -0400
Subject: [PATCH] Add --config and --type options to moduserprefs.sh script (#1490051)

---
 bin/moduserprefs.sh |   37 +++++++++++++++++++++++++++----------
 1 files changed, 27 insertions(+), 10 deletions(-)

diff --git a/bin/moduserprefs.sh b/bin/moduserprefs.sh
index 09f7398..858d76b 100755
--- a/bin/moduserprefs.sh
+++ b/bin/moduserprefs.sh
@@ -24,28 +24,45 @@
 
 function print_usage()
 {
-	print "Usage: moduserprefs.sh [--user=user-id] pref-name [pref-value|--delete]\n";
-	print "--user   User ID in local database\n";
-	print "--delete Unset the given preference\n";
+    print "Usage: moduserprefs.sh [options] pref-name [pref-value]\n";
+    print "Options:\n";
+    print "    --user=user-id User ID in local database\n";
+    print "    --config=path  Location of additional configuration file\n";
+    print "    --delete       Unset the given preference\n";
+    print "    --type=type    Pref-value type: int, bool, string\n";
 }
 
 
 // get arguments
-$args = rcube_utils::get_opt(array('u' => 'user', 'd' => 'delete'));
+$args = rcube_utils::get_opt(array(
+        'u' => 'user',
+        'd' => 'delete',
+        't' => 'type',
+        'c' => 'config',
+));
 
 if ($_SERVER['argv'][1] == 'help') {
-	print_usage();
-	exit;
+    print_usage();
+    exit;
 }
 else if (empty($args[0]) || (!isset($args[1]) && !$args['delete'])) {
-	print "Missing required parameters.\n";
-	print_usage();
-	exit;
+    print "Missing required parameters.\n";
+    print_usage();
+    exit;
 }
 
 $pref_name  = trim($args[0]);
 $pref_value = $args['delete'] ? null : trim($args[1]);
 
-rcmail_utils::mod_pref($pref_name, $pref_value, $args['user']);
+if ($pref_value === null) {
+    $args['type'] = null;
+}
+
+if ($args['config']) {
+    $rcube = rcube::get_instance();
+    $rcube->config->load_from_file($args['config']);
+}
+
+rcmail_utils::mod_pref($pref_name, $pref_value, $args['user'], $args['type']);
 
 ?>

--
Gitblit v1.9.1