/
cludecommandpackagebuildnumber.cpp
94 lines (81 loc) · 2.84 KB
/
cludecommandpackagebuildnumber.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include "cludecommandpackagebuildnumber.hpp"
CLudeCommandPackageBuildNumber::CLudeCommandPackageBuildNumber():
CLudeCommandPackage()
{
this->addDescription(QLatin1String("update build information"));
}
CLudeCommandPackageBuildNumber::~CLudeCommandPackageBuildNumber()
{
}
void CLudeCommandPackageBuildNumber::process()
{
QCommandLineOption build_number_increase(
QStringList()<<"i"<<"increase",
QCoreApplication::translate("main","increase build number by one and update 'updated' field")
);
this->addOption(build_number_increase);
QCommandLineOption build_number_decrease(
QStringList()<<"d"<<"decrease",
QCoreApplication::translate("main","decrease build number by one and update 'updated' field")
);
this->addOption(build_number_decrease);
CLudeCommandPackage::process();
//process all commands here
if(this->isSet(build_number_increase)){
this->actionBuildNumberIncrease();
}
else if(this->isSet(build_number_decrease)){
this->actionBuildNumberDecrease();
}
}
QString CLudeCommandPackageBuildNumber::name()
{
return QLatin1String("build-number");
}
QString CLudeCommandPackageBuildNumber::version()
{
return QLatin1String("1.0.0");
}
void CLudeCommandPackageBuildNumber::actionBuildNumberIncrease()
{
this->updateBuildNumber(1);
}
void CLudeCommandPackageBuildNumber::actionBuildNumberDecrease()
{
this->updateBuildNumber(-1);
}
void CLudeCommandPackageBuildNumber::updateBuildNumber(int inc)
{
QDir vDir(QDir::currentPath());
vDir.setNameFilters(QStringList()<<"*.pro");
QStringList one = vDir.entryList(QDir::Files);
if(one.size()!=1){
qDebug() << "No pro file found.";
return;
}
QString name = one[0].replace(".pro","");
//NOTE changed cludepackage.json to <package_name>.cde
QString vPath = QDir::toNativeSeparators(QDir::currentPath()+QLatin1String("/")+name+QLatin1String(".cde"));
QFile vFile(vPath);
if(!vFile.exists()){
qDebug() << "PATH: "<<vPath;
qDebug() << QString("%1.cde file doesn't exists").arg(name).toLocal8Bit().constData();
}
else{
CLudePackage clp;
qDebug() << vPath.toLocal8Bit().constData();
if(clp.fromJsonFile(vPath)){
clp.setUpdated(QDateTime::currentDateTime().toLocalTime());
clp.setBuild(clp.build()+inc);
if(clp.toJsonFile(vPath)){
qDebug() << "build updated to :"<<clp.build();
}
else{
qDebug() << "failed to update build";
}
}
else{
qDebug() << QString("%1.cde file parsing error").arg(name).toLocal8Bit().constData();
}
}
}