xref: /aosp_15_r20/build/make/tools/atree/files.h (revision 9e94795a3d4ef5c1d47486f9a02bb378756cea8a)
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