Home | History | Annotate | Download | only in atree
      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