From 7e706ed4853bfa0c71a67f95960800c627e692b5 Mon Sep 17 00:00:00 2001 From: "art1@andreas-romeyke.de" Date: Tue, 29 May 2018 17:40:47 +0200 Subject: [PATCH] - added first implementation --- src/lib/manifest.cpp | 55 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/lib/manifest.cpp diff --git a/src/lib/manifest.cpp b/src/lib/manifest.cpp new file mode 100644 index 0000000..63b83b5 --- /dev/null +++ b/src/lib/manifest.cpp @@ -0,0 +1,55 @@ +#include "manifest.hpp" +#include +#include +#include + +#include +//#include // c++17 + +//namespace fs = std::filesystem; +namespace fs = boost::filesystem; + +using namespace std; + + +Manifest::Manifest( string basedir ) { + map possible_manifest_files; + possible_manifest_files[md5] = "manifest-md5.txt"; + possible_manifest_files[sha1] = "manifest-sha1.txt"; + for (map::iterator it=possible_manifest_files.begin(); it!=possible_manifest_files.end(); ++it) { + // debug + cout << it->first << " => " << it->second << endl; + // test if file exists + string filename = basedir + it->second; + fs::path p{ filename }; + fs::file_status s = fs::status( p ); + cout << "path "<< p.string() << endl; + cout << "is file: "<< fs::is_regular_file( s) << endl; + if (fs::is_regular_file( s)) { + Manifest::manifest_algorithm_files[it->first] = filename; + } + } +} + +map Manifest::get_checksum_file_pairs(checksum_algorithms alg) { + string filename = Manifest::manifest_algorithm_files[ alg ]; + map checksum_file_pairs; + cout << "using file " << filename << endl; + ifstream file; + file.open( filename ); + if (file.is_open()) { + string line; + while (getline(file, line)) { + stringstream line_ss ( line ); + string checksum; + string subfile; + line_ss >> checksum; + line_ss >> subfile; + checksum_file_pairs[checksum]=subfile; + cout << "checksum="<