Bump the revision number
[backups/.git] / filedata.cpp
index 31078ea9878c8c2068a08176812f85e5e5b25ca5..81ebb588058c503664d9d8b1618d17b684cdd0bb 100644 (file)
@@ -25,6 +25,10 @@ vector<string> split( const string &line, char c, int limit = -1 ) {
   return out;
 }
 
+const FileData::LastBackupCmp FileData::lastbackupcmp = FileData::LastBackupCmp();
+const FileData::SizeCmp       FileData::sizecmp       = FileData::SizeCmp();
+const FileData::NameCmp       FileData::namecmp       = FileData::NameCmp();
+
 ostream &operator<<( ostream &o, const FileData *d) {
   return operator<<( o, *d );
 }
@@ -75,3 +79,17 @@ istream &operator>>( istream &i, FileData &d ) {
 
   return i;
 }
+
+bool needs_backup( const FileData *before, const FileData *after ) {
+  assert( before->getFileName() == after->getFileName() );
+
+  if( after->getLastBackupDate()  <  after->getModifiedDate() ) return true;
+
+  if( before->getFileType()       != after->getFileType()     ) return true;
+  if( before->getPermissions()    != after->getPermissions()  ) return true;
+  if( before->getUserName()       != after->getUserName()     ) return true;
+  if( before->getGroupName()      != after->getGroupName()    ) return true;
+  if( before->getFileSize()       != after->getFileSize()     ) return true;
+
+  return false;
+}