macos fixes
This commit is contained in:
@@ -456,6 +456,15 @@ auto fuse_base::mount([[maybe_unused]] std::vector<std::string> orig_args,
|
||||
return -1;
|
||||
}
|
||||
|
||||
system(fmt::format("launchctl bootout gui/{} '{}' 1>/dev/null 2>&1",
|
||||
getuid(),
|
||||
utils::path::combine("~",
|
||||
{
|
||||
"/Library/LaunchAgents",
|
||||
fmt::format("{}.plist", label),
|
||||
}))
|
||||
.c_str());
|
||||
|
||||
system(fmt::format("launchctl bootstrap gui/{} '{}' 1>/dev/null 2>&1",
|
||||
getuid(),
|
||||
utils::path::combine("~",
|
||||
@@ -464,6 +473,7 @@ auto fuse_base::mount([[maybe_unused]] std::vector<std::string> orig_args,
|
||||
fmt::format("{}.plist", label),
|
||||
}))
|
||||
.c_str());
|
||||
|
||||
ret = system(
|
||||
fmt::format("launchctl kickstart gui/{}/{}", getuid(), label).c_str());
|
||||
if (ret != 0) {
|
||||
|
@@ -502,8 +502,6 @@ auto fuse_drive::getattr_impl(std::string api_path, struct stat *u_stat,
|
||||
auto fuse_drive::getattr_impl(std::string api_path, struct stat *u_stat)
|
||||
-> api_error {
|
||||
#endif
|
||||
auto parent = utils::path::get_parent_api_path(api_path);
|
||||
|
||||
auto res = check_parent_access(api_path, X_OK);
|
||||
if (res != api_error::success) {
|
||||
return res;
|
||||
|
@@ -19,6 +19,7 @@
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
#include <utils/common.hpp>
|
||||
#if !defined(_WIN32)
|
||||
|
||||
#include "utils/unix/unix_utils.hpp"
|
||||
@@ -277,7 +278,6 @@ auto create_daemon(std::function<int()> main_func) -> int {
|
||||
signal(SIGHUP, SIG_DFL);
|
||||
signal(SIGPIPE, SIG_IGN);
|
||||
|
||||
umask(0);
|
||||
chdir("/");
|
||||
return main_func();
|
||||
#else // !defined(__APPLE__)
|
||||
@@ -297,7 +297,6 @@ auto create_daemon(std::function<int()> main_func) -> int {
|
||||
return 1;
|
||||
}
|
||||
|
||||
umask(0);
|
||||
chdir("/");
|
||||
return main_func();
|
||||
}
|
||||
@@ -333,6 +332,19 @@ auto generate_launchd_plist(const std::string &label, std::string plist_path,
|
||||
array.append_child("string").text().set(arg.c_str());
|
||||
}
|
||||
|
||||
dict.append_child("key").text().set("EnvironmentVariables");
|
||||
pugi::xml_node env_dict = dict.append_child("dict");
|
||||
if (not utils::get_environment_variable("PROJECT_TEST_CONFIG_DIR").empty()) {
|
||||
env_dict.append_child("key").text().set("PROJECT_TEST_CONFIG_DIR");
|
||||
env_dict.append_child("string").text().set(
|
||||
utils::get_environment_variable("PROJECT_TEST_CONFIG_DIR"));
|
||||
}
|
||||
if (not utils::get_environment_variable("PROJECT_TEST_INPUT_DIR").empty()) {
|
||||
env_dict.append_child("key").text().set("PROJECT_TEST_INPUT_DIR");
|
||||
env_dict.append_child("string").text().set(
|
||||
utils::get_environment_variable("PROJECT_TEST_INPUT_DIR"));
|
||||
}
|
||||
|
||||
dict.append_child("key").text().set("WorkingDirectory");
|
||||
dict.append_child("string").text().set(working_dir.c_str());
|
||||
|
||||
|
@@ -349,6 +349,8 @@ public:
|
||||
}
|
||||
|
||||
static void execute_mount(auto args, auto location) {
|
||||
EXPECT_TRUE(utils::file::change_to_process_directory());
|
||||
|
||||
args.emplace_back(location);
|
||||
auto mount_cmd = "./repertory " + utils::string::join(args, ' ');
|
||||
std::cout << "mount command: " << mount_cmd << std::endl;
|
||||
@@ -359,6 +361,8 @@ public:
|
||||
}
|
||||
|
||||
static void execute_unmount(auto args) {
|
||||
EXPECT_TRUE(utils::file::change_to_process_directory());
|
||||
|
||||
args.emplace_back("-unmount");
|
||||
auto unmount_cmd = "./repertory " + utils::string::join(args, ' ');
|
||||
std::cout << "unmount command: " << unmount_cmd << std::endl;
|
||||
|
Reference in New Issue
Block a user