From cf553506aa7aa181301da77af60360349e837676 Mon Sep 17 00:00:00 2001 From: jongmyeongko Date: Thu, 8 Dec 2016 00:46:13 +0900 Subject: [PATCH] grant 'x' permission to app_root directory Change-Id: Id4785d68cfd12398b61110093fa308217f2875d2 Signed-off-by: jongmyeongko --- src/tpk/step/filesystem/step_grant_permission.cc | 74 ++++++++++++------------ 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/src/tpk/step/filesystem/step_grant_permission.cc b/src/tpk/step/filesystem/step_grant_permission.cc index fee73ae..580bf6b 100644 --- a/src/tpk/step/filesystem/step_grant_permission.cc +++ b/src/tpk/step/filesystem/step_grant_permission.cc @@ -17,6 +17,33 @@ namespace bf = boost::filesystem; 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 { @@ -34,6 +61,10 @@ ci::Step::Status StepTpkGrantPermission::process() { 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(); @@ -59,73 +90,42 @@ ci::Step::Status StepTpkGrantPermission::process() { } 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; } } -- 2.7.4