Merge lp:~vjsamuel/drizzle/new-config-file-system into lp:~drizzle-trunk/drizzle/development

Proposed by Vijay Samuel
Status: Merged
Approved by: Monty Taylor
Approved revision: 1673
Merged at revision: 1677
Proposed branch: lp:~vjsamuel/drizzle/new-config-file-system
Merge into: lp:~drizzle-trunk/drizzle/development
Diff against target: 275 lines (+77/-35)
5 files modified
client/drizzle.cc (+15/-6)
client/drizzledump.cc (+14/-6)
client/drizzleimport.cc (+14/-5)
client/drizzleslap.cc (+20/-12)
client/drizzletest.cc (+14/-6)
To merge this branch: bzr merge lp:~vjsamuel/drizzle/new-config-file-system
Reviewer Review Type Date Requested Status
Monty Taylor Approve
Review via email: mp+31417@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Monty Taylor (mordred) wrote :

Looks great. Thanks for fixing that for me!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'client/drizzle.cc'
2--- client/drizzle.cc 2010-06-19 16:36:52 +0000
3+++ client/drizzle.cc 2010-07-30 19:39:47 +0000
4@@ -9,7 +9,7 @@
5 * (at your option) any later version.
6 *
7 * This program is distributed in the hope that it will be useful,
8- * but WITHOUT ANY WARRANTY; without even the implied warranty of
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty ofm
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13@@ -65,6 +65,7 @@
14 #include <sys/ioctl.h>
15 #include <drizzled/configmake.h>
16 #include "drizzled/utf8/utf8.h"
17+#include <cstdlib>
18
19 #if defined(HAVE_CURSES_H) && defined(HAVE_TERM_H)
20 #include <curses.h>
21@@ -1488,6 +1489,8 @@
22 std::string system_config_dir_client(SYSCONFDIR);
23 system_config_dir_client.append("/drizzle/client.cnf");
24
25+ std::string user_config_dir((getenv("XDG_CONFIG_HOME")? getenv("XDG_CONFIG_HOME"):"~/.config"));
26+
27 po::variables_map vm;
28
29 po::positional_options_description p;
30@@ -1498,14 +1501,20 @@
31
32 if (! vm["no-defaults"].as<bool>())
33 {
34- ifstream user_drizzle_ifs("~/.drizzle/drizzle.cnf");
35+ std::string user_config_dir_drizzle(user_config_dir);
36+ user_config_dir_drizzle.append("/drizzle/drizzle.cnf");
37+
38+ std::string user_config_dir_client(user_config_dir);
39+ user_config_dir_client.append("/drizzle/client.cnf");
40+
41+ ifstream user_drizzle_ifs(user_config_dir_drizzle.c_str());
42 po::store(parse_config_file(user_drizzle_ifs, drizzle_options), vm);
43-
44+
45+ ifstream user_client_ifs(user_config_dir_client.c_str());
46+ po::store(parse_config_file(user_client_ifs, client_options), vm);
47+
48 ifstream system_drizzle_ifs(system_config_dir_drizzle.c_str());
49 store(parse_config_file(system_drizzle_ifs, drizzle_options), vm);
50-
51- ifstream user_client_ifs("~/.drizzle/client.cnf");
52- po::store(parse_config_file(user_client_ifs, client_options), vm);
53
54 ifstream system_client_ifs(system_config_dir_client.c_str());
55 po::store(parse_config_file(system_client_ifs, client_options), vm);
56
57=== modified file 'client/drizzledump.cc'
58--- client/drizzledump.cc 2010-06-24 10:30:53 +0000
59+++ client/drizzledump.cc 2010-07-30 19:39:47 +0000
60@@ -2590,6 +2590,8 @@
61 std::string system_config_dir_client(SYSCONFDIR);
62 system_config_dir_client.append("/drizzle/client.cnf");
63
64+ std::string user_config_dir((getenv("XDG_CONFIG_HOME")? getenv("XDG_CONFIG_HOME"):"~/.config"));
65+
66 po::positional_options_description p;
67 p.add("database-used", 1);
68 p.add("Table-used",-1);
69@@ -2605,15 +2607,21 @@
70
71 if (! vm.count("no-defaults"))
72 {
73- ifstream user_dump_ifs("~/.drizzle/drizzledump.cnf");
74+ std::string user_config_dir_dump(user_config_dir);
75+ user_config_dir_dump.append("/drizzle/drizzledump.cnf");
76+
77+ std::string user_config_dir_client(user_config_dir);
78+ user_config_dir_client.append("/drizzle/client.cnf");
79+
80+ ifstream user_dump_ifs(user_config_dir_dump.c_str());
81 po::store(parse_config_file(user_dump_ifs, dump_options), vm);
82-
83+
84+ ifstream user_client_ifs(user_config_dir_client.c_str());
85+ po::store(parse_config_file(user_client_ifs, client_options), vm);
86+
87 ifstream system_dump_ifs(system_config_dir_dump.c_str());
88- store(parse_config_file(system_dump_ifs, dump_options), vm);
89+ po::store(parse_config_file(system_dump_ifs, dump_options), vm);
90
91- ifstream user_client_ifs("~/.drizzle/client.cnf");
92- po::store(parse_config_file(user_client_ifs, client_options), vm);
93-
94 ifstream system_client_ifs(system_config_dir_client.c_str());
95 po::store(parse_config_file(system_client_ifs, client_options), vm);
96 }
97
98=== modified file 'client/drizzleimport.cc'
99--- client/drizzleimport.cc 2010-06-21 11:59:50 +0000
100+++ client/drizzleimport.cc 2010-07-30 19:39:47 +0000
101@@ -468,18 +468,27 @@
102 std::string system_config_dir_client(SYSCONFDIR);
103 system_config_dir_client.append("/drizzle/client.cnf");
104
105+ std::string user_config_dir((getenv("XDG_CONFIG_HOME")? getenv("XDG_CONFIG_HOME"):"~/.config"));
106+
107 po::variables_map vm;
108+
109 po::store(po::command_line_parser(argc, argv).options(long_options).
110 extra_parser(parse_password_arg).run(), vm);
111
112- ifstream user_import_ifs("~/.drizzle/drizzleimport.cnf");
113+ std::string user_config_dir_import(user_config_dir);
114+ user_config_dir_import.append("/drizzle/drizzleimport.cnf");
115+
116+ std::string user_config_dir_client(user_config_dir);
117+ user_config_dir_client.append("/drizzle/client.cnf");
118+
119+ ifstream user_import_ifs(user_config_dir_import.c_str());
120 po::store(parse_config_file(user_import_ifs, import_options), vm);
121-
122+
123+ ifstream user_client_ifs(user_config_dir_client.c_str());
124+ po::store(parse_config_file(user_client_ifs, client_options), vm);
125+
126 ifstream system_import_ifs(system_config_dir_import.c_str());
127 store(parse_config_file(system_import_ifs, import_options), vm);
128-
129- ifstream user_client_ifs("~/.drizzle/client.cnf");
130- po::store(parse_config_file(user_client_ifs, client_options), vm);
131
132 ifstream system_client_ifs(system_config_dir_client.c_str());
133 po::store(parse_config_file(system_client_ifs, client_options), vm);
134
135=== modified file 'client/drizzleslap.cc'
136--- client/drizzleslap.cc 2010-06-21 11:59:50 +0000
137+++ client/drizzleslap.cc 2010-07-30 19:39:47 +0000
138@@ -848,9 +848,9 @@
139
140 * long_options is the union of commandline_options, slap_options and client_options.
141
142- * There are two configuration files per set of options, one which is defined by the user and
143- * which is found at ~/.drizzle directory and the other which is the system configuration
144- * file which is found in the SYSCONFDIR/drizzle directory.
145+ * There are two configuration files per set of options, one which is defined by the user
146+ * which is found at either $XDG_CONFIG_HOME/drizzle or ~/.config/drizzle directory and the other which
147+ * is the system configuration file which is found in the SYSCONFDIR/drizzle directory.
148
149 * The system configuration file is over ridden by the user's configuration file which
150 * in turn is over ridden by the command line.
151@@ -979,6 +979,8 @@
152 std::string system_config_dir_client(SYSCONFDIR);
153 system_config_dir_client.append("/drizzle/client.cnf");
154
155+ std::string user_config_dir((getenv("XDG_CONFIG_HOME")? getenv("XDG_CONFIG_HOME"):"~/.config"));
156+
157 uint64_t temp_drizzle_port= 0;
158 drizzle_con_st con;
159 OptionString *eptr;
160@@ -989,15 +991,21 @@
161 po::store(po::command_line_parser(argc, argv).options(long_options).
162 extra_parser(parse_password_arg).run(), vm);
163
164- ifstream user_slap_ifs("~/.drizzle/drizzleslap.cnf");
165+ std::string user_config_dir_slap(user_config_dir);
166+ user_config_dir_slap.append("/drizzle/drizzleslap.cnf");
167+
168+ std::string user_config_dir_client(user_config_dir);
169+ user_config_dir_client.append("/drizzle/client.cnf");
170+
171+ ifstream user_slap_ifs(user_config_dir_slap.c_str());
172 po::store(parse_config_file(user_slap_ifs, slap_options), vm);
173
174+ ifstream user_client_ifs(user_config_dir_client.c_str());
175+ po::store(parse_config_file(user_client_ifs, client_options), vm);
176+
177 ifstream system_slap_ifs(system_config_dir_slap.c_str());
178 store(parse_config_file(system_slap_ifs, slap_options), vm);
179
180- ifstream user_client_ifs("~/.drizzle/client.cnf");
181- po::store(parse_config_file(user_client_ifs, client_options), vm);
182-
183 ifstream system_client_ifs(system_config_dir_client.c_str());
184 store(parse_config_file(system_client_ifs, client_options), vm);
185
186@@ -1006,7 +1014,7 @@
187 if (process_options())
188 exit(1);
189
190- if( vm.count("help") || vm.count("info"))
191+ if ( vm.count("help") || vm.count("info"))
192 {
193 printf("%s Ver %s Distrib %s, for %s-%s (%s)\n",internal::my_progname, SLAP_VERSION,
194 drizzle_version(),HOST_VENDOR,HOST_OS,HOST_CPU);
195@@ -1015,11 +1023,11 @@
196 \nand you are welcome to modify and redistribute it under the GPL \
197 license\n");
198 puts("Run a query multiple times against the server\n");
199- cout<<long_options<<endl;
200+ cout << long_options << endl;
201 exit(0);
202 }
203
204- if(vm.count("port"))
205+ if (vm.count("port"))
206 {
207 temp_drizzle_port= vm["port"].as<uint32_t>();
208
209@@ -1034,7 +1042,7 @@
210 }
211 }
212
213- if( vm.count("password") )
214+ if ( vm.count("password") )
215 {
216 if (!opt_password.empty())
217 opt_password.erase();
218@@ -1055,7 +1063,7 @@
219
220
221
222- if( vm.count("version") )
223+ if ( vm.count("version") )
224 {
225 printf("%s Ver %s Distrib %s, for %s-%s (%s)\n",internal::my_progname, SLAP_VERSION,
226 drizzle_version(),HOST_VENDOR,HOST_OS,HOST_CPU);
227
228=== modified file 'client/drizzletest.cc'
229--- client/drizzletest.cc 2010-07-06 04:22:48 +0000
230+++ client/drizzletest.cc 2010-07-30 19:39:47 +0000
231@@ -5380,7 +5380,7 @@
232 {
233 if (in_opt_sleep < -1)
234 {
235- cout<<N_("Error: Invalid Value for opt_sleep");
236+ cout << N_("Error: Invalid Value for opt_sleep");
237 exit(-1);
238 }
239 opt_sleep= in_opt_sleep;
240@@ -5476,6 +5476,8 @@
241 std::string system_config_dir_client(SYSCONFDIR);
242 system_config_dir_client.append("/drizzle/client.cnf");
243
244+ std::string user_config_dir((getenv("XDG_CONFIG_HOME")? getenv("XDG_CONFIG_HOME"):"~/.config"));
245+
246 po::variables_map vm;
247
248 po::store(po::command_line_parser(argc, argv).options(long_options).
249@@ -5483,15 +5485,21 @@
250
251 if (! vm["no-defaults"].as<bool>())
252 {
253- ifstream user_test_ifs("~/.drizzle/drizzletest.cnf");
254+ std::string user_config_dir_test(user_config_dir);
255+ user_config_dir_test.append("/drizzle/drizzletest.cnf");
256+
257+ std::string user_config_dir_client(user_config_dir);
258+ user_config_dir_client.append("/drizzle/client.cnf");
259+
260+ ifstream user_test_ifs(user_config_dir_test.c_str());
261 po::store(parse_config_file(user_test_ifs, test_options), vm);
262-
263+
264+ ifstream user_client_ifs(user_config_dir_client.c_str());
265+ po::store(parse_config_file(user_client_ifs, client_options), vm);
266+
267 ifstream system_test_ifs(system_config_dir_test.c_str());
268 store(parse_config_file(system_test_ifs, test_options), vm);
269
270- ifstream user_client_ifs("~/.drizzle/client.cnf");
271- po::store(parse_config_file(user_client_ifs, client_options), vm);
272-
273 ifstream system_client_ifs(system_config_dir_client.c_str());
274 po::store(parse_config_file(system_client_ifs, client_options), vm);
275 }