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 \ |