| 975 |
|
ModPackage installedPackage, updatePackage; |
| 976 |
|
if (is_directory(install_iter->path()) && exists(install_iter->path().string() + "/Mod_Info.cfg")) |
| 977 |
|
{ |
| 978 |
+ |
string blah =install_iter->path().string() + "/Mod_Info.cfg"; |
| 979 |
+ |
string blah2 = "packages/" + install_iter->path().filename() + "/Mod_Info.cfg"; |
| 980 |
|
fstream file; |
| 981 |
|
file.open((install_iter->path().string() + "/Mod_Info.cfg").c_str()); |
| 982 |
|
if (!file.fail()) |
| 983 |
< |
ModPackage updatePackage = fileToModPackage(file, install_iter->path().filename()); |
| 983 |
> |
updatePackage = fileToModPackage(file, install_iter->path().filename()); |
| 984 |
|
else |
| 985 |
|
{ |
| 986 |
|
file.close(); |
| 987 |
|
continue; |
| 988 |
|
} |
| 989 |
< |
if (exists("packages" + install_iter->path().filename() + "/Mod_Info.cfg")) |
| 989 |
> |
if (exists("packages/" + install_iter->path().filename() + "/Mod_Info.cfg")) |
| 990 |
|
{ |
| 991 |
|
file.close(); |
| 992 |
< |
file.open(("packages" + install_iter->path().filename() + "/Mod_Info.cfg").c_str()); |
| 992 |
> |
file.clear(); |
| 993 |
> |
file.open(("packages/" + install_iter->path().filename() + "/Mod_Info.cfg").c_str()); |
| 994 |
|
if (!file.fail()) |
| 995 |
< |
ModPackage installedPackage = fileToModPackage(file, install_iter->path().filename()); |
| 995 |
> |
installedPackage = fileToModPackage(file, install_iter->path().filename()); |
| 996 |
|
file.close(); |
| 997 |
|
if (updatePackage.modStringVersion > installedPackage.modStringVersion) |
| 998 |
|
{ |
| 1492 |
|
|
| 1493 |
|
return true; |
| 1494 |
|
} |
| 1495 |
< |
|
| 1495 |
> |
extern MainWindow* TheWindow; |
| 1496 |
|
void ProcessPackageUpdates(string pathToUpdate, string strPathToPackages) |
| 1497 |
|
{ |
| 1498 |
|
ptime startTime(second_clock::local_time()); |
| 1543 |
|
if (!file.fail()) |
| 1544 |
|
{ |
| 1545 |
|
installedPackage = fileToModPackage(file, updtFolder); |
| 1546 |
< |
file.close(); |
| 1547 |
< |
if (updatePackage.modStringVersion > installedPackage.modStringVersion) |
| 1548 |
< |
{ |
| 1549 |
< |
if (updatePackage.installerVersion <= INSTALLER_VERSION) |
| 1550 |
< |
{ |
| 1546 |
> |
} |
| 1547 |
> |
file.close(); |
| 1548 |
> |
} |
| 1549 |
> |
file.close(); |
| 1550 |
> |
if (updatePackage.modStringVersion > installedPackage.modStringVersion) |
| 1551 |
> |
{ |
| 1552 |
> |
if (updatePackage.installerVersion <= INSTALLER_VERSION) |
| 1553 |
> |
{ |
| 1554 |
> |
if(exists(strPathToPackages + "/" + updatePackage.modStringName)) { |
| 1555 |
|
#ifdef WIN32 |
| 1556 |
< |
remove_all((path)(strPathToPackages + "/" + installedPackage.modStringName)); |
| 1556 |
> |
remove_all((path)(strPathToPackages + "/" + updatePackage.modStringName)); |
| 1557 |
|
#else |
| 1558 |
< |
if (needNewTrashDir) |
| 1559 |
< |
{ |
| 1560 |
< |
strTrashDir = strTrashDir + "Old_packages_" + boost::lexical_cast<string>(tmStartTime.tm_hour) + "-" + |
| 1561 |
< |
boost::lexical_cast<string>(tmStartTime.tm_min) + "-" + boost::lexical_cast<string>(tmStartTime.tm_sec) + "/"; |
| 1562 |
< |
create_directory(strTrashDir); |
| 1563 |
< |
needNewTrashDir = false; |
| 1557 |
< |
} |
| 1558 |
< |
rename((path)(strPathToPackages + "/" + installedPackage.modStringName), (path)(strTrashDir + installedPackage.modStringName)); |
| 1559 |
< |
#endif |
| 1560 |
< |
rename((path)(pathToUpdate + "/" + updatePackage.modStringName), (path)(strPathToPackages + "/" + updatePackage.modStringName)); |
| 1558 |
> |
if (needNewTrashDir) |
| 1559 |
> |
{ |
| 1560 |
> |
strTrashDir = strTrashDir + "Old_packages_" + boost::lexical_cast<string>(tmStartTime.tm_hour) + "-" + |
| 1561 |
> |
boost::lexical_cast<string>(tmStartTime.tm_min) + "-" + boost::lexical_cast<string>(tmStartTime.tm_sec) + "/"; |
| 1562 |
> |
create_directory(strTrashDir); |
| 1563 |
> |
needNewTrashDir = false; |
| 1564 |
|
} |
| 1565 |
+ |
rename((path)(strPathToPackages + "/" + updatePackage.modStringName), (path)(strTrashDir + updatePackage.modStringName)); |
| 1566 |
+ |
#endif |
| 1567 |
|
} |
| 1568 |
+ |
rename((path)(pathToUpdate + "/" + updatePackage.modStringName), (path)(strPathToPackages + "/" + updatePackage.modStringName)); |
| 1569 |
|
} |
| 1564 |
– |
else |
| 1565 |
– |
file.close(); |
| 1570 |
|
} |
| 1567 |
– |
file.close(); |
| 1568 |
– |
file.clear(); |
| 1571 |
|
} |
| 1572 |
|
} |
| 1573 |
|
} |
| 1575 |
|
{ |
| 1576 |
|
setStatusArea("Warning, handled exception: " + (string)ex.what()); |
| 1577 |
|
} |
| 1578 |
+ |
wxCommandEvent e; |
| 1579 |
+ |
TheWindow->OnRefreshButtonClick( e ); |
| 1580 |
|
} |
| 1581 |
|
|
| 1582 |
|
/* MakePathLocalToGlobalize is a function used once by ProcessAEUpdate() that takes a file in an \ |