HGUpgrade:将src改成操作系统-CPU架构-OEM名称的组合
This commit is contained in:
parent
1d339e6613
commit
0ca78dc96f
|
@ -102,50 +102,51 @@ static void GetMacAddrList(std::vector<std::string> &macList)
|
|||
pAdapterInfo = nullptr;
|
||||
#else
|
||||
DIR *dir = opendir("/sys/class/net");
|
||||
if (NULL != dir)
|
||||
if (nullptr != dir)
|
||||
{
|
||||
printf("opendir success\n");
|
||||
|
||||
struct dirent *ent;
|
||||
while ((ent = readdir(dir)) != nullptr)
|
||||
{
|
||||
if (1)
|
||||
if (strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0)
|
||||
continue;
|
||||
|
||||
if (strstr(ent->d_name, "docker") == ent->d_name || strstr(ent->d_name, "sit") == ent->d_name
|
||||
|| strstr(ent->d_name, "ip6tnl") == ent->d_name || strcmp(ent->d_name, "lo") == 0)
|
||||
continue;
|
||||
|
||||
printf("name %s\n", ent->d_name);
|
||||
|
||||
char addrPath[256];
|
||||
sprintf(addrPath, "/sys/class/net/%s/address", ent->d_name);
|
||||
|
||||
FILE *file = fopen(addrPath, "rb");
|
||||
if (nullptr != file)
|
||||
{
|
||||
if (strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0)
|
||||
continue;
|
||||
char mac[1025] = {0};
|
||||
fread(mac, 1, 1024, file);
|
||||
|
||||
if (strstr(ent->d_name, "docker") == ent->d_name || strstr(ent->d_name, "sit") == ent->d_name
|
||||
|| strstr(ent->d_name, "ip6tnl") == ent->d_name || strcmp(ent->d_name, "lo") == 0)
|
||||
continue;
|
||||
|
||||
printf("name %s\n", ent->d_name);
|
||||
|
||||
char addrPath[256];
|
||||
sprintf(addrPath, "/sys/class/net/%s/address", ent->d_name);
|
||||
|
||||
FILE *file = fopen(addrPath, "rb");
|
||||
if (NULL != file)
|
||||
int len = (int)strlen(mac);
|
||||
for (int i = 0; i < len; ++i)
|
||||
{
|
||||
char mac[1025] = {0};
|
||||
fread(mac, 1, 1024, file);
|
||||
if (strlen(mac) > 0)
|
||||
{
|
||||
if (mac[strlen(mac) - 1] == '\n')
|
||||
mac[strlen(mac) - 1] = '\0';
|
||||
}
|
||||
|
||||
if (strlen(mac) > 0)
|
||||
{
|
||||
macList.push_back(mac);
|
||||
}
|
||||
|
||||
printf("mac %s\n", mac);
|
||||
fclose(file);
|
||||
if (mac[i] == ':')
|
||||
mac[i] = '-';
|
||||
else if (mac[i] == '\n')
|
||||
mac[i] = '\0';
|
||||
}
|
||||
else
|
||||
|
||||
if (strlen(mac) > 0)
|
||||
{
|
||||
printf("fopen fail\n");
|
||||
macList.push_back(mac);
|
||||
}
|
||||
|
||||
printf("mac %s\n", mac);
|
||||
fclose(file);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("fopen fail\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -198,7 +199,7 @@ static bool Greater(const std::string &str1, const std::string &str2)
|
|||
}
|
||||
|
||||
// type:1表示安装 2表示卸载 src:来源 desc: 说明
|
||||
static bool PostInfo(int type, const std::string &src, const std::string &desc)
|
||||
static bool PostInfo(int type, const std::string &desc)
|
||||
{
|
||||
curl_global_init(CURL_GLOBAL_ALL);
|
||||
|
||||
|
@ -236,9 +237,55 @@ static bool PostInfo(int type, const std::string &src, const std::string &desc)
|
|||
|
||||
std::string version = GetCurrVersion();
|
||||
|
||||
std::string osName, archName, oemName;
|
||||
|
||||
#if defined(HG_CMP_MSC)
|
||||
osName = "Windows";
|
||||
archName = "unknown";
|
||||
|
||||
SYSTEM_INFO si;
|
||||
GetNativeSystemInfo(&si);
|
||||
if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64)
|
||||
archName = "x64";
|
||||
else if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_INTEL)
|
||||
archName = "x86";
|
||||
|
||||
#else
|
||||
osName = "Linux";
|
||||
archName = "unknown";
|
||||
|
||||
FILE *fp = popen("system("cat /etc/issue | cut -d\' \' -f1")", "r");
|
||||
if (nullptr != fp)
|
||||
{
|
||||
char buff[1024] = {0};
|
||||
fread(buff, 1024, 1, fp);
|
||||
osName = buff;
|
||||
pclose(fp);
|
||||
}
|
||||
|
||||
fp = popen("system("arch")", "r");
|
||||
if (nullptr != fp)
|
||||
{
|
||||
char buff[1024] = {0};
|
||||
fread(buff, 1024, 1, fp);
|
||||
archName = buff;
|
||||
pclose(fp);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(OEM_HANWANG)
|
||||
oemName = "Hanvon";
|
||||
#elif defined(OEM_LISICHENG)
|
||||
oemName = "Lanxum";
|
||||
#else
|
||||
oemName = "Huago";
|
||||
#endif
|
||||
|
||||
std::string source = osName + "-" + archName + "-" + oemName;
|
||||
|
||||
char json[1024];
|
||||
sprintf(json, "{\"type\":%d, \"mac\":\"%s\", \"localid\":\"%s\", \"v\":\"%s\", \"ref\":\"%s\", \"desc\":\"%s\"}",
|
||||
type, macList[0].c_str(), md5Str, version.c_str(), src.c_str(), desc.c_str());
|
||||
type, macList[0].c_str(), md5Str, version.c_str(), source.c_str(), desc.c_str());
|
||||
|
||||
struct curl_slist* headers = nullptr;
|
||||
headers = curl_slist_append(headers, "Content-Type:application/json;charset=UTF-8");
|
||||
|
@ -270,14 +317,14 @@ static bool PostInfo(int type, const std::string &src, const std::string &desc)
|
|||
return ret;
|
||||
}
|
||||
|
||||
bool PostInstallInfo(const std::string &src, const std::string &desc)
|
||||
bool PostInstallInfo(const std::string &desc)
|
||||
{
|
||||
return PostInfo(1, src, desc);
|
||||
return PostInfo(1, desc);
|
||||
}
|
||||
|
||||
bool PostUninstallInfo(const std::string &src, const std::string &desc)
|
||||
bool PostUninstallInfo(const std::string &desc)
|
||||
{
|
||||
return PostInfo(2, src, desc);
|
||||
return PostInfo(2, desc);
|
||||
}
|
||||
|
||||
static bool Setup(const std::string& pkgPath)
|
||||
|
@ -307,10 +354,10 @@ static bool Setup(const std::string& pkgPath)
|
|||
return ret;
|
||||
}
|
||||
|
||||
bool Upgrade(const std::string& pkgPath, const std::string &src, const std::string &desc)
|
||||
bool Upgrade(const std::string& pkgPath, const std::string &desc)
|
||||
{
|
||||
bool ret = Setup(pkgPath);
|
||||
if (ret)
|
||||
PostInfo(1, src, desc);
|
||||
PostInfo(1, desc);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
#include <string>
|
||||
|
||||
// 上传安装日志
|
||||
bool PostInstallInfo(const std::string &src, const std::string &desc);
|
||||
bool PostInstallInfo(const std::string &desc);
|
||||
|
||||
// 上传卸载日志
|
||||
bool PostUninstallInfo(const std::string &src, const std::string &desc);
|
||||
bool PostUninstallInfo(const std::string &desc);
|
||||
|
||||
// 升级安装, 使用之前的安装路径
|
||||
bool Upgrade(const std::string& pkgPath, const std::string &src, const std::string &desc);
|
||||
bool Upgrade(const std::string& pkgPath, const std::string &desc);
|
||||
|
||||
#endif /* __HGUPGRADE_H__ */
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
int main(int argc, char *argv[])
|
||||
{
|
||||
int type = 0;
|
||||
std::string src;
|
||||
std::string desc;
|
||||
std::string pkgPath;
|
||||
|
||||
|
@ -22,20 +21,18 @@ int main(int argc, char *argv[])
|
|||
type = 3;
|
||||
else if (z == strstr(z, "-pkgpath="))
|
||||
pkgPath = z + strlen("-pkgpath=");
|
||||
else if (z == strstr(z, "-src="))
|
||||
src = z + strlen("-src=");
|
||||
else if (z == strstr(z, "-desc="))
|
||||
desc = z + strlen("-desc=");
|
||||
}
|
||||
|
||||
if (1 == type)
|
||||
PostInstallInfo(src, desc);
|
||||
PostInstallInfo(desc);
|
||||
else if (2 == type)
|
||||
PostUninstallInfo(src, desc);
|
||||
PostUninstallInfo(desc);
|
||||
else if (3 == type && !pkgPath.empty())
|
||||
{
|
||||
QApplication a(argc, argv);
|
||||
MainWindow w(pkgPath, src, desc);
|
||||
MainWindow w(pkgPath, desc);
|
||||
w.show();
|
||||
a.exec();
|
||||
}
|
||||
|
|
|
@ -2,11 +2,10 @@
|
|||
#include "ui_mainwindow.h"
|
||||
#include "HGUpgrade.h"
|
||||
|
||||
MainWindow::MainWindow(const std::string& pkgPath, const std::string& src, const std::string& desc, QWidget *parent)
|
||||
MainWindow::MainWindow(const std::string& pkgPath, const std::string& desc, QWidget *parent)
|
||||
: QMainWindow(parent)
|
||||
, ui(new Ui::MainWindow)
|
||||
, m_pkgPath(pkgPath)
|
||||
, m_src(src)
|
||||
, m_desc(desc)
|
||||
, m_thread(nullptr)
|
||||
{
|
||||
|
@ -23,7 +22,7 @@ MainWindow::MainWindow(const std::string& pkgPath, const std::string& src, const
|
|||
MainWindow::~MainWindow()
|
||||
{
|
||||
HGBase_CloseThread(m_thread);
|
||||
m_thread = NULL;
|
||||
m_thread = nullptr;
|
||||
|
||||
delete ui;
|
||||
}
|
||||
|
@ -32,7 +31,7 @@ void MainWindow::ThreadFunc(HGThread thread, HGPointer param)
|
|||
{
|
||||
(void)thread;
|
||||
MainWindow* p = (MainWindow*)param;
|
||||
Upgrade(p->m_pkgPath, p->m_src, p->m_desc);
|
||||
Upgrade(p->m_pkgPath, p->m_desc);
|
||||
|
||||
emit p->closeWnd();
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@ class MainWindow : public QMainWindow
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
MainWindow(const std::string &pkgPath, const std::string& src, const std::string& desc, QWidget *parent = nullptr);
|
||||
MainWindow(const std::string &pkgPath, const std::string& desc, QWidget *parent = nullptr);
|
||||
~MainWindow();
|
||||
|
||||
signals:
|
||||
|
@ -26,7 +26,6 @@ private:
|
|||
Ui::MainWindow *ui;
|
||||
|
||||
std::string m_pkgPath;
|
||||
std::string m_src;
|
||||
std::string m_desc;
|
||||
HGThread m_thread;
|
||||
};
|
||||
|
|
|
@ -145,7 +145,7 @@
|
|||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<ModuleDefinitionFile>HGBase.def</ModuleDefinitionFile>
|
||||
<AdditionalDependencies>gdiplus.lib;Iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>gdiplus.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
|
@ -171,7 +171,7 @@
|
|||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<ModuleDefinitionFile>HGBase.def</ModuleDefinitionFile>
|
||||
<AdditionalDependencies>gdiplus.lib;Iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>gdiplus.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalOptions>/LTCG %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
|
@ -196,7 +196,7 @@ copy $(OutDir)HGBase.dll $(SolutionDir)..\..\..\release\win\x86\Release\</Comman
|
|||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<ModuleDefinitionFile>HGBase.def</ModuleDefinitionFile>
|
||||
<AdditionalDependencies>gdiplus.lib;Iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>gdiplus.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
|
@ -222,7 +222,7 @@ copy $(OutDir)HGBase.dll $(SolutionDir)..\..\..\release\win\x86\Release\</Comman
|
|||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<ModuleDefinitionFile>HGBase.def</ModuleDefinitionFile>
|
||||
<AdditionalDependencies>gdiplus.lib;Iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>gdiplus.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalOptions>/LTCG %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
|
|
|
@ -28,8 +28,6 @@ EndProject
|
|||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HGWebService", "HGWebService\HGWebService.vcxproj", "{BA4F1937-479E-463C-BB25-0DAC454DB625}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{F85F4457-1B42-46E7-BA86-F088D6D5994F} = {F85F4457-1B42-46E7-BA86-F088D6D5994F}
|
||||
{EFAE5F69-A4C2-4A07-8BE6-68714D86BCE2} = {EFAE5F69-A4C2-4A07-8BE6-68714D86BCE2}
|
||||
{4954F36B-A0A3-4550-9C4E-3B3D210F5CE4} = {4954F36B-A0A3-4550-9C4E-3B3D210F5CE4}
|
||||
{5D85F2AC-FACD-436C-A67B-E13056DD0C03} = {5D85F2AC-FACD-436C-A67B-E13056DD0C03}
|
||||
{4909ACEA-80FF-482E-9FA2-5E8534789A82} = {4909ACEA-80FF-482E-9FA2-5E8534789A82}
|
||||
EndProjectSection
|
||||
|
|
|
@ -111,7 +111,7 @@
|
|||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>Iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
|
@ -131,7 +131,7 @@
|
|||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalOptions>/LTCG %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>Iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>copy $(OutDir)upload.cgi $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
|
||||
|
@ -149,7 +149,7 @@
|
|||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>Iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
|
@ -169,7 +169,7 @@
|
|||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalOptions>/LTCG %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>Iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>copy $(OutDir)upload.cgi $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
#if defined(HG_CMP_MSC)
|
||||
#include <shlobj.h>
|
||||
#include <atlstr.h>
|
||||
#include <iphlpapi.h>
|
||||
#else
|
||||
#include "uuid/uuid.h"
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue