files.h revision 0b3ec5d32f15bdea67d15af95cf68e455867c668
1#ifndef FILES_H 2#define FILES_H 3 4#include <map> 5#include <string> 6#include <vector> 7#include <sys/types.h> 8 9using namespace std; 10 11enum FileOpType { 12 FILE_OP_COPY = 0, 13 FILE_OP_REMOVE, 14 FILE_OP_STRIP 15}; 16 17struct FileRecord 18{ 19 FileRecord(); 20 21 string listFile; 22 int listLine; 23 24 string sourceBase; 25 string sourceName; 26 string sourcePath; 27 bool sourceIsDir; 28 time_t sourceMod; 29 off_t sourceSize; 30 FileOpType fileOp; 31 32 string outName; 33 string outPath; 34 off_t outSize; 35 time_t outMod; 36 bool outIsDir; 37 unsigned int mode; 38}; 39 40int read_list_file(const string& filename, 41 const map<string, string>& variables, 42 vector<FileRecord>* files, 43 vector<string>* excludes); 44int locate(FileRecord* rec, const vector<string>& search); 45void stat_out(const string& base, FileRecord* rec); 46string dir_part(const string& filename); 47int list_dir(const FileRecord& rec, const vector<string>& excludes, 48 vector<FileRecord>* files); 49 50#endif // FILES_H 51