Subversion Repositories spk

Rev

Rev 178 | Rev 196 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 178 Rev 183
Line 6... Line 6...
6
#include "spk.h"
6
#include "spk.h"
7
//#include "ProgressInfo.h"
7
//#include "ProgressInfo.h"
8
 
8
 
9
namespace SPK {
9
namespace SPK {
10
 
10
 
11
	void AddLogEntry(int type, CyString args, CyStringList* errors)
-
 
12
	{
-
 
13
		if (errors) errors->PushBack(args, ERRORLOG_OLD(type));
-
 
14
	}
-
 
15
	void AddLogEntry(int type, const Utils::String &args, Utils::CStringList* errors)
11
	void addLogEntry(int type, const Utils::String &args, Utils::CStringList* errors)
16
	{
12
	{
17
		if (errors) errors->pushBack(args, ERRORLOG(type));
13
		if (errors) errors->pushBack(args, ERRORLOG(type));
18
	}
14
	}
19
 
15
 
20
 
16
 
Line 62... Line 58...
62
				_storeOverride(f);
58
				_storeOverride(f);
63
		}
59
		}
64
	}
60
	}
65
}
61
}
66
 
62
 
67
void COriginalFiles::backup(CBaseFile *package, CyStringList *errors)
63
void COriginalFiles::backup(CBaseFile *package, Utils::CStringList *errors)
68
{
64
{
69
	// backup any original files before installing
65
	// backup any original files before installing
70
	CLog::log(CLog::Log_Install, 3, "Checking for any original files to backup");
66
	CLog::log(CLog::Log_Install, 3, "Checking for any original files to backup");
71
	CDirIO oDir(_sDir + "/PluginManager/Original");
67
	CDirIO oDir(_sDir + "/PluginManager/Original");
72
	for ( CListNode<C_File> *oNode = _lFiles.Front(); oNode; oNode = oNode->next() )
68
	for ( CListNode<C_File> *oNode = _lFiles.Front(); oNode; oNode = oNode->next() )
Line 90... Line 86...
90
			}
86
			}
91
		}
87
		}
92
	}
88
	}
93
}
89
}
94
 
90
 
95
bool COriginalFiles::backupFile(C_File *f, CyStringList *errors)
91
bool COriginalFiles::backupFile(C_File *f, Utils::CStringList *errors)
96
{
92
{
97
	Utils::String newDir = "PluginManager/Original/" + f->getDirectory(NULL);
93
	Utils::String newDir = "PluginManager/Original/" + f->getDirectory(NULL);
98
	CDirIO oDir(_sDir);
94
	CDirIO oDir(_sDir);
99
	if ( oDir.exists(newDir + "/" + f->filename()) )
95
	if ( oDir.exists(newDir + "/" + f->filename()) )
100
		return true;
96
		return true;
Line 103... Line 99...
103
	if ( !oDir.exists(newDir) )
99
	if ( !oDir.exists(newDir) )
104
	{
100
	{
105
		if ( !oDir.create(newDir) )
101
		if ( !oDir.create(newDir) )
106
		{
102
		{
107
			CLog::logf(CLog::Log_Install, 2, "Unable to create directory to backup original files, %s", newDir.c_str());
103
			CLog::logf(CLog::Log_Install, 2, "Unable to create directory to backup original files, %s", newDir.c_str());
108
			AddLogEntry(SPKINSTALL_CREATEDIRECTORY_FAIL, newDir, errors);
104
			addLogEntry(SPKINSTALL_CREATEDIRECTORY_FAIL, newDir, errors);
109
			return false;
105
			return false;
110
		}
106
		}
111
 
107
 
112
		CLog::logf(CLog::Log_Install, 2, "Created new directory, %s", newDir.c_str());
108
		CLog::logf(CLog::Log_Install, 2, "Created new directory, %s", newDir.c_str());
113
		AddLogEntry(SPKINSTALL_CREATEDIRECTORY, newDir, errors);
109
		addLogEntry(SPKINSTALL_CREATEDIRECTORY, newDir, errors);
114
	}
110
	}
115
 
111
 
116
	// now lets copy the file
112
	// now lets copy the file
117
	CFileIO CopyFile(f->filePointer());
113
	CFileIO CopyFile(f->filePointer());
118
	if(CopyFile.copy(oDir.file(newDir + "/" + f->filename())))
114
	if(CopyFile.copy(oDir.file(newDir + "/" + f->filename())))
119
	{
115
	{
120
		CLog::logf(CLog::Log_Install, 2, "Original file: %s has been backed up", f->getNameDirectory(NULL).c_str());
116
		CLog::logf(CLog::Log_Install, 2, "Original file: %s has been backed up", f->getNameDirectory(NULL).c_str());
121
		AddLogEntry(SPKINSTALL_ORIGINAL_BACKUP, f->getNameDirectory(NULL), errors);
117
		addLogEntry(SPKINSTALL_ORIGINAL_BACKUP, f->getNameDirectory(NULL), errors);
122
		return true;
118
		return true;
123
	}
119
	}
124
	else
120
	else
125
	{
121
	{
126
		CLog::logf(CLog::Log_Install, 2, "Failed to backup the original file: %s", f->getNameDirectory(NULL).c_str());
122
		CLog::logf(CLog::Log_Install, 2, "Failed to backup the original file: %s", f->getNameDirectory(NULL).c_str());
127
		AddLogEntry(SPKINSTALL_ORIGINAL_BACKUP_FAIL, f->getNameDirectory(NULL), errors);
123
		addLogEntry(SPKINSTALL_ORIGINAL_BACKUP_FAIL, f->getNameDirectory(NULL), errors);
128
		return false;
124
		return false;
129
	}
125
	}
130
}
126
}
131
 
127
 
132
bool COriginalFiles::doBackup(C_File *f, CyStringList *errors)
128
bool COriginalFiles::doBackup(C_File *f, Utils::CStringList *errors)
133
{
129
{
134
	bool backed = false;
130
	bool backed = false;
135
 
131
 
136
	C_File *of = this->_getFile(f);
132
	C_File *of = this->_getFile(f);
137
	if ( of ) {
133
	if ( of ) {
Line 167... Line 163...
167
	_lFiles.clear();
163
	_lFiles.clear();
168
 
164
 
169
	return files;
165
	return files;
170
}
166
}
171
 
167
 
172
bool COriginalFiles::restoreFile(C_File *f, CyStringList *errors)
168
bool COriginalFiles::restoreFile(C_File *f, Utils::CStringList *errors)
173
{
169
{
174
	bool original = false;
170
	bool original = false;
175
 
171
 
176
	// check if its an original file and restore
172
	// check if its an original file and restore
177
	if ( this->isOriginal(f) )
173
	if ( this->isOriginal(f) )
Line 179... Line 175...
179
		CFileIO of(_sDir + "/PluginManager/Original/" + f->getNameDirectory(NULL));
175
		CFileIO of(_sDir + "/PluginManager/Original/" + f->getNameDirectory(NULL));
180
		if ( of.exists() )
176
		if ( of.exists() )
181
		{
177
		{
182
			original = true;
178
			original = true;
183
			if ( of.Rename(_sDir + "/" + f->getNameDirectory(NULL)) )
179
			if ( of.Rename(_sDir + "/" + f->getNameDirectory(NULL)) )
184
				AddLogEntry(SPKINSTALL_ORIGINAL_RESTORE, f->getNameDirectory(NULL), errors);
180
				addLogEntry(SPKINSTALL_ORIGINAL_RESTORE, f->getNameDirectory(NULL), errors);
185
			else
181
			else
186
				AddLogEntry(SPKINSTALL_ORIGINAL_RESTORE_FAIL, f->getNameDirectory(NULL), errors);
182
				addLogEntry(SPKINSTALL_ORIGINAL_RESTORE_FAIL, f->getNameDirectory(NULL), errors);
187
 
183
 
188
			CFileIO backupFile(_sDir + "/PluginManager/Original/Replacements/" + f->getNameDirectory(NULL));
184
			CFileIO backupFile(_sDir + "/PluginManager/Original/Replacements/" + f->getNameDirectory(NULL));
189
			if ( backupFile.exists() ) backupFile.remove();
185
			if ( backupFile.exists() ) backupFile.remove();
190
 
186
 
191
		}
187
		}