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