using namespace std;
static const unsigned int bytes_in_block = 0x800;
+static const char * dbname = "/var/lib/backups/backups.db";
unsigned long long current_time() {
unsigned long long rc = 0;
}
}
+template<class I, class O>
+void copy_filenames( I begin, const I &end, O out ) {
+ while( begin != end ) {
+ string output = (*begin)->getFileName();
+ output.push_back( 0 );
+ *out = output;
+ ++out;
+ ++begin;
+ }
+}
+
int main() {
// Parse the list of current files on stdin
file_set current;
populate_set( cin, current );
file_set backed_up;
- ifstream db( "test.db" );
+ ifstream db( dbname );
if( db && db.good() ) {
populate_set( db, backed_up );
}
// Track the total size of added files
unsigned long long added_blocks, added_bytes;
- sizes( backups.begin(), backups.end(), added_blocks, added_bytes );
+ sizes( added.begin(), added.end(), added_blocks, added_bytes );
file_vector modified_files;
// Backup files that have been modified
sort( backups_s.begin(), backups_s.end(), sizecmp );
file_set final;
- unsigned long long space = 0x102800000ULL; // about 98% of 4220 MBytes
+ unsigned long long space = 0x100000000ULL; // After looking at how big the ISO can be and how many 1K blocks are left after formatting the filesystem I decided on an even 4GB target
insert_iterator<file_set> final_i( final, final.begin() );
}
// Write the 'current' list to the dbfile
- ofstream dbout( "test.db" );
+ ofstream dbout( dbname );
copy( current.begin(), current.end(), ostream_iterator<FileData*>( dbout, "" ) );
// Write the 'final' list to stdout
- copy( final.begin(), final.end(), ostream_iterator<FileData*>( cout, "" ) );
+ copy_filenames( final.begin(), final.end(), ostream_iterator<string>( cout, "" ) );
+
+ cerr << now << endl << endl;
cerr << "Need backing up..." << endl;
cerr << " Added Bytes: " << added_bytes << endl;