Stefan Schuermans
add copyright & license
Stefan Schuermans commited 355a113 at 2020-09-17 19:23:53
/**
* Permissioner: set file ownerships and permissions
* Copyright 2020: Stefan Schuermans, Aachen, Germany <stefan@schuermans.info>
* Copyleft: GNU GENERAL PUBLIC LICENSE version 3 (see LICENSE)
*/
#include <permissioner/Config.h>
#include <permissioner/Group.h>
#include <permissioner/Permissions.h>
#include <permissioner/User.h>
#include <permissioner/Tree.h>
#include <boost/filesystem.hpp>
#include <boost/optional.hpp>
#include <boost/optional/optional_io.hpp>
#include <cstdlib>
#include <iomanip>
#include <iostream>
#include <string>
bool check(TreeMap const &treeMap, std::string const &rel_path,
boost::optional<std::string> user,
boost::optional<std::string> group,
mode_t setMode, mode_t setCondMode,
mode_t clearMode, mode_t clearCondMode) {
std::string path = boost::filesystem::canonical(rel_path).string();
TreeMap::const_iterator itTree = treeMap.find(path);
if (itTree == treeMap.end()) {
std::cerr << "tree map entry \"" << path << "\" not found" << std::endl;
return false;
}
Tree const &tree = itTree->second;
bool ret = true;
if (tree.getRoot() != path) {
std::cerr << "tree map entry \"" << path << "\": unexpected root \""
<< tree.getRoot() << "\"" << std::endl;
ret = false;
}
if (tree.getUser().getUserName() != user) {
std::cerr << "tree map entry \"" << path << "\": unexpected user \""
<< tree.getUser().getUserName() << "\"" << std::endl;
ret = false;
}
if (tree.getGroup().getGroupName() != group) {
std::cerr << "tree map entry \"" << path << "\": unexpected group \""
<< tree.getGroup().getGroupName() << "\"" << std::endl;
ret = false;
}
Permissions const &perms = tree.getPermissions();
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX