namespace bs = boost::system;
namespace ci = common_installer;
+namespace {
+
+bool GrantPermission755(const bf::path& path) {
+ auto permission = bf::perms::owner_all |
+ bf::perms::group_read | bf::perms::group_exe |
+ bf::perms::others_read | bf::perms::others_exe;
+ if (!ci::SetDirPermissions(path, permission)) {
+ LOG(ERROR) << "Grant permission error" << " path: " << path
+ << " permission: " << permission;
+ return false;
+ }
+ return true;
+}
+
+bool GrantPermission644(const bf::path& path) {
+ auto permission = bf::perms::owner_read | bf::perms::owner_write |
+ bf::perms::group_read | bf::perms::others_read;
+ if (!ci::SetDirPermissions(path, permission)) {
+ LOG(ERROR) << "Grant permission error" << " path: " << path
+ << " permission: " << permission;
+ return false;
+ }
+ return true;
+}
+
+} // namespace
+
namespace tpk {
namespace filesystem {
context_->root_application_path.get() / context_->pkgid.get());
bf::path app_root = context_->pkg_path.get();
+ if (bf::is_directory(app_root)) {
+ if (!GrantPermission755(app_root))
+ return Status::GRANT_PERMISSION_ERROR;
+ }
for (auto& entry :
boost::make_iterator_range(bf::directory_iterator(app_root), {})) {
auto path = entry.path();
}
if (bf::is_directory(path) && path.filename() == "bin") {
- auto permission = bf::perms::owner_all |
- bf::perms::group_read | bf::perms::group_exe |
- bf::perms::others_read | bf::perms::others_exe;
- if (!ci::SetDirPermissions(path, permission)) {
- LOG(ERROR) << "Grant permission error" << " path: " << path
- << " permission: " << permission;
+ if (!GrantPermission755(path))
return Status::GRANT_PERMISSION_ERROR;
- }
for (auto& entry :
boost::make_iterator_range(bf::directory_iterator(path), {})) {
auto path = entry.path();
if (bf::is_regular_file(path)) {
- if (!ci::SetDirPermissions(path, permission)) {
- LOG(ERROR) << "Grant permission error" << " path: " << path
- << " permission: " << permission;
+ if (!GrantPermission755(path))
return Status::GRANT_PERMISSION_ERROR;
- }
}
}
continue;
}
if (bf::is_directory(path) && path.filename() == "lib") {
- auto permission = bf::perms::owner_all |
- bf::perms::group_read | bf::perms::group_exe |
- bf::perms::others_read | bf::perms::others_exe;
- if (!ci::SetDirPermissions(path, permission)) {
- LOG(ERROR) << "Grant permission error" << " path: " << path
- << " permission: " << permission;
+ if (!GrantPermission755(path))
return Status::GRANT_PERMISSION_ERROR;
- }
for (auto& entry :
boost::make_iterator_range(bf::directory_iterator(path), {})) {
auto path = entry.path();
if (bf::is_regular_file(path)) {
- auto permission = bf::perms::owner_read | bf::perms::owner_write |
- bf::perms::group_read | bf::perms::others_read;
- if (!ci::SetDirPermissions(path, permission)) {
- LOG(ERROR) << "Grant permission error" << " path: " << path
- << " permission: " << permission;
+ if (!GrantPermission644(path))
return Status::GRANT_PERMISSION_ERROR;
- }
}
}
continue;
}
if (bf::is_directory(path)) {
- auto permission = bf::perms::owner_all |
- bf::perms::group_read | bf::perms::group_exe |
- bf::perms::others_read | bf::perms::others_exe;
- if (!ci::SetDirPermissions(path, permission)) {
- LOG(ERROR) << "Grant permission error" << " path: " << path
- << " permission: " << permission;
+ if (!GrantPermission755(path))
return Status::GRANT_PERMISSION_ERROR;
- }
continue;
}
if (bf::is_regular_file(path)) {
- auto permission = bf::perms::owner_read | bf::perms::owner_write |
- bf::perms::group_read | bf::perms::others_read;
- if (!ci::SetDirPermissions(path, permission)) {
- LOG(ERROR) << "Grant permission error" << " path: " << path
- << " permission: " << permission;
+ if (!GrantPermission644(path))
return Status::GRANT_PERMISSION_ERROR;
- }
continue;
}
}