• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  #ifndef FILES_H
2  #define FILES_H
3  
4  #include <map>
5  #include <string>
6  #include <vector>
7  #include <sys/types.h>
8  
9  using namespace std;
10  
11  enum FileOpType {
12      FILE_OP_COPY = 0,
13      FILE_OP_REMOVE,
14      FILE_OP_STRIP
15  };
16  
17  struct 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  
40  int read_list_file(const string& filename,
41                     const map<string, string>& variables,
42                     vector<FileRecord>* files,
43                     vector<string>* excludes);
44  int locate(FileRecord* rec, const vector<string>& search);
45  void stat_out(const string& base, FileRecord* rec);
46  string dir_part(const string& filename);
47  int list_dir(const FileRecord& rec, const vector<string>& excludes,
48                      vector<FileRecord>* files);
49  
50  #endif // FILES_H
51