From 598c67a7753e80f312da0557f1c7f2305d15ead3 Mon Sep 17 00:00:00 2001 From: David Buckley Date: Sat, 2 Jan 2021 22:58:54 -0500 Subject: use environment variable TABFS_MOUNT_DIR instead of hardcoded mnt --- fs/tabfs.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/fs/tabfs.c b/fs/tabfs.c index c5ed91e..f674216 100644 --- a/fs/tabfs.c +++ b/fs/tabfs.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -211,19 +212,28 @@ static struct fuse_operations tabfs_filesystem_operations = { }; int main(int argc, char **argv) { + char* mountdir = getenv("TABFS_MOUNT_DIR"); + if (mountdir == NULL) { + mountdir = malloc(sizeof(char)*4); + sprintf(mountdir, "mnt"); + } + char killcmd[1000]; sprintf(killcmd, "pgrep tabfs | grep -v %d | xargs kill -9", getpid()); system(killcmd); + + char unmountcmd[1000]; #ifdef __APPLE__ - system("diskutil umount force mnt > /dev/null"); + sprintf(unmountcmd, "diskutil umount force %s > /dev/null", mountdir); #else - system("fusermount -u mnt"); + sprintf(unmountcmd, "fusermount -u %s", mountdir); #endif + system(unmountcmd); l = fopen("log.txt", "w"); for (int i = 0; i < argc; i++) { fprintf(l, "arg%d: [%s]\n", i, argv[i]); fflush(l); } - char* fuse_argv[] = {argv[0], "-odirect_io", "-s", "-f", "mnt"}; + char* fuse_argv[] = {argv[0], "-odirect_io", "-s", "-f", mountdir}; return fuse_main(5, fuse_argv, &tabfs_filesystem_operations, NULL); } -- cgit v1.2.3 From 901d4c98109c6c7572983d2d69ccb82d0b679d8c Mon Sep 17 00:00:00 2001 From: David Buckley Date: Sat, 2 Jan 2021 23:36:52 -0500 Subject: remove unnecessary malloc --- fs/tabfs.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fs/tabfs.c b/fs/tabfs.c index 90895f2..84e9ce8 100644 --- a/fs/tabfs.c +++ b/fs/tabfs.c @@ -214,8 +214,7 @@ static struct fuse_operations tabfs_filesystem_operations = { int main(int argc, char **argv) { char* mountdir = getenv("TABFS_MOUNT_DIR"); if (mountdir == NULL) { - mountdir = malloc(sizeof(char)*4); - sprintf(mountdir, "mnt"); + mountdir = "mnt"; } char killcmd[1000]; -- cgit v1.2.3 From 509a0e1ce9e5106790c9588f1b95db1deea7761d Mon Sep 17 00:00:00 2001 From: human Date: Tue, 5 Jan 2021 03:17:07 +0200 Subject: support TABFS_MOUNT_DIR --- fs/tabfs.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/fs/tabfs.c b/fs/tabfs.c index 5c27faf..103bec8 100644 --- a/fs/tabfs.c +++ b/fs/tabfs.c @@ -440,6 +440,10 @@ static const struct fuse_operations tabfs_oper = { int main(int argc, char **argv) { (void)argc; + if (NULL == getenv("TABFS_MOUNT_DIR")) { + setenv("TABFS_MOUNT_DIR", "mnt", 1); + } + freopen("log.txt", "a", stderr); setvbuf(stderr, NULL, _IONBF, 0); @@ -448,14 +452,14 @@ int main(int argc, char **argv) { system(killcmd); #if defined(__APPLE__) - system("diskutil umount force mnt >/dev/null"); + system("diskutil umount force \"$TABFS_MOUNT_DIR\" >/dev/null"); #elif defined(__FreeBSD__) - system("umount -f mnt 2>/dev/null"); + system("umount -f \"$TABFS_MOUNT_DIR\" 2>/dev/null"); #else - system("fusermount -u mnt 2>/dev/null"); + system("fusermount -u \"$TABFS_MOUNT_DIR\" 2>/dev/null"); #endif - mkdir("mnt", 0755); + system("mkdir -p \"$TABFS_MOUNT_DIR\""); pthread_t thread; int err = pthread_create(&thread, NULL, reader_main, NULL); @@ -472,7 +476,7 @@ int main(int argc, char **argv) { "-oauto_unmount", #endif "-odirect_io", - "mnt", + getenv("TABFS_MOUNT_DIR"), NULL, }; return fuse_main( -- cgit v1.2.3