1*4882a593Smuzhiyun #include "configurer.h"
2*4882a593Smuzhiyun #include <QFile>
3*4882a593Smuzhiyun #include <QTextStream>
4*4882a593Smuzhiyun #include <systemmanager.h>
5*4882a593Smuzhiyun
processName()6*4882a593Smuzhiyun QString Configurer::processName()
7*4882a593Smuzhiyun {
8*4882a593Smuzhiyun return "/usr/bin/fl_4g";
9*4882a593Smuzhiyun }
10*4882a593Smuzhiyun
confName()11*4882a593Smuzhiyun QString Configurer::confName()
12*4882a593Smuzhiyun {
13*4882a593Smuzhiyun return "/etc/wiet/daemon_4g.conf";
14*4882a593Smuzhiyun }
15*4882a593Smuzhiyun
changConf(const QString & key,const QString & value)16*4882a593Smuzhiyun void Configurer::changConf(const QString &key, const QString &value)
17*4882a593Smuzhiyun {
18*4882a593Smuzhiyun bool bFind =false;
19*4882a593Smuzhiyun QList<QString> confInfo =readConf();
20*4882a593Smuzhiyun QString data;
21*4882a593Smuzhiyun foreach (QString row, confInfo)
22*4882a593Smuzhiyun {
23*4882a593Smuzhiyun QStringList list = SystemManager::instance()->getMatch(row, "[#a-zA-Z0-9_]+");
24*4882a593Smuzhiyun if(list.contains(key) && list[0][0] !='#'){
25*4882a593Smuzhiyun bFind = true;
26*4882a593Smuzhiyun data += (key +" = "+value +newLineChars());
27*4882a593Smuzhiyun }else{
28*4882a593Smuzhiyun data += (row +newLineChars());
29*4882a593Smuzhiyun }
30*4882a593Smuzhiyun }
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun if(!bFind)
33*4882a593Smuzhiyun {
34*4882a593Smuzhiyun data += (key +" = "+value +newLineChars());
35*4882a593Smuzhiyun }
36*4882a593Smuzhiyun writeConf(data);
37*4882a593Smuzhiyun }
38*4882a593Smuzhiyun
changConf(const QMap<QString,QString> & maps)39*4882a593Smuzhiyun void Configurer::changConf(const QMap<QString, QString> &maps)
40*4882a593Smuzhiyun {
41*4882a593Smuzhiyun QList<QString> confInfo = readConf();
42*4882a593Smuzhiyun QString data;
43*4882a593Smuzhiyun QList<QString> keys= maps.keys();
44*4882a593Smuzhiyun foreach (QString row, confInfo)
45*4882a593Smuzhiyun {
46*4882a593Smuzhiyun QStringList list = SystemManager::instance()->getMatch(row, "[#a-zA-Z0-9_]+");
47*4882a593Smuzhiyun if(list.size() >0 && maps.contains(list[0])&& list[0][0] != '#')
48*4882a593Smuzhiyun {
49*4882a593Smuzhiyun data += (list[0] +" = "+maps.value(list[0]) +newLineChars());
50*4882a593Smuzhiyun keys.removeOne(list[0]);
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun }else{
53*4882a593Smuzhiyun data += (row +newLineChars());
54*4882a593Smuzhiyun }
55*4882a593Smuzhiyun }
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun for(int i=0; i<keys.size(); i++)
58*4882a593Smuzhiyun {
59*4882a593Smuzhiyun data += (keys[i] +" = "+maps.value(keys[i]) +newLineChars());
60*4882a593Smuzhiyun }
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun writeConf(data);
63*4882a593Smuzhiyun }
64*4882a593Smuzhiyun
conf(const QString & key)65*4882a593Smuzhiyun QString Configurer::conf(const QString &key)
66*4882a593Smuzhiyun {
67*4882a593Smuzhiyun QList<QString> confInfo = readConf();
68*4882a593Smuzhiyun QString results;
69*4882a593Smuzhiyun foreach (QString row, confInfo)
70*4882a593Smuzhiyun {
71*4882a593Smuzhiyun QStringList list = SystemManager::instance()->getMatch(row, "[#a-zA-Z0-9_]+");
72*4882a593Smuzhiyun if(list.size() >=1 && list.contains(key) && list[0][0] !='#'){
73*4882a593Smuzhiyun if(list.size()>1)
74*4882a593Smuzhiyun {
75*4882a593Smuzhiyun results = list[1];
76*4882a593Smuzhiyun }
77*4882a593Smuzhiyun break;
78*4882a593Smuzhiyun }
79*4882a593Smuzhiyun }
80*4882a593Smuzhiyun return results;
81*4882a593Smuzhiyun }
readConf()82*4882a593Smuzhiyun QList<QString> Configurer::readConf()
83*4882a593Smuzhiyun {
84*4882a593Smuzhiyun QList<QString> list;
85*4882a593Smuzhiyun QFile file(confName());
86*4882a593Smuzhiyun if(file.open(QFile::ReadOnly| QFile::Text))
87*4882a593Smuzhiyun {
88*4882a593Smuzhiyun QTextStream stream(&file);
89*4882a593Smuzhiyun QString line;
90*4882a593Smuzhiyun while (stream.readLineInto(&line)) {
91*4882a593Smuzhiyun list<< line;
92*4882a593Smuzhiyun }
93*4882a593Smuzhiyun file.close();
94*4882a593Smuzhiyun }
95*4882a593Smuzhiyun
96*4882a593Smuzhiyun return list;
97*4882a593Smuzhiyun }
98*4882a593Smuzhiyun
writeConf(const QString & data)99*4882a593Smuzhiyun void Configurer::writeConf(const QString &data)
100*4882a593Smuzhiyun {
101*4882a593Smuzhiyun QFile file(confName());
102*4882a593Smuzhiyun if(file.open(QFile::ReadWrite| QFile::Text |QFile::Truncate))
103*4882a593Smuzhiyun {
104*4882a593Smuzhiyun file.write(data.toLocal8Bit());
105*4882a593Smuzhiyun file.close();
106*4882a593Smuzhiyun }
107*4882a593Smuzhiyun }
108*4882a593Smuzhiyun
newLineChars()109*4882a593Smuzhiyun QString Configurer::newLineChars()
110*4882a593Smuzhiyun {
111*4882a593Smuzhiyun return "\n";
112*4882a593Smuzhiyun }
113