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