}
bool CreateDirectories(const bf::path& app_dir, const std::string& pkgid,
- uid_t uid, gid_t gid, const bool set_permissions) {
+ uid_t uid, gid_t gid, const bool set_permissions,
+ const std::vector<const char*> additional_dirs = std::vector<const char*>()) {
bf::path base_dir = app_dir / pkgid;
if (bf::exists(base_dir)) {
LOG(DEBUG) << "Directory for user already exist: " << base_dir;
bs::error_code error;
std::vector<const char*> dirs(kEntries);
+ dirs.insert(dirs.end(), additional_dirs.begin(), additional_dirs.end());
// always trusted
dirs.push_back(kSharedTrustedDir);
for (auto& entry : dirs) {
bool CreateSkelDirectories(const std::string& pkgid,
const std::string& api_version,
- bool trusted, bool shareddata, bool is_readonly) {
+ bool trusted, bool shareddata, bool is_readonly,
+ const std::vector<const char*> additional_dirs) {
bf::path path = bf::path(kSkelAppDir) / pkgid;
LOG(DEBUG) << "Creating directories in: " << path;
}
std::vector<const char*> dirs(kEntries);
+ dirs.insert(dirs.end(), additional_dirs.begin(), additional_dirs.end());
if (trusted)
dirs.push_back(kSharedTrustedDir);
if (api_ver < ver30 || shareddata) {