]> git.sesse.net Git - bcachefs-tools-debian/commitdiff
Kill shell script wrappers
authorKent Overstreet <kent.overstreet@linux.dev>
Fri, 22 Sep 2023 18:06:55 +0000 (14:06 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Fri, 22 Sep 2023 18:09:51 +0000 (14:09 -0400)
nixos has trouble with the shell script wrappers - readlink isn't
available by default!

But, there's a better approach: just get rid of them and use symlinks
instead, and have main() check what we're supposed to be.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Makefile
bcachefs.c
fsck.bcachefs [deleted file]
mkfs.bcachefs [deleted file]
mount.bcachefs [deleted file]
mount.fuse.bcachefs [deleted file]

index a221e66dfb05e3650913b7a47d52cc656126194c..51add2aa0826182b82cccb3cc2468336b3daed81 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,7 @@
 PREFIX?=/usr/local
 PKG_CONFIG?=pkg-config
 INSTALL=install
+LN=ln
 
 ifeq ("$(origin V)", "command line")
   BUILD_VERBOSE = $(V)
@@ -152,15 +153,15 @@ install: INITRAMFS_HOOK=$(INITRAMFS_DIR)/hooks/bcachefs
 install: INITRAMFS_SCRIPT=$(INITRAMFS_DIR)/scripts/local-premount/bcachefs
 install: bcachefs
        $(INSTALL) -m0755 -D bcachefs      -t $(DESTDIR)$(ROOT_SBINDIR)
-       $(INSTALL) -m0755    fsck.bcachefs    $(DESTDIR)$(ROOT_SBINDIR)
-       $(INSTALL) -m0755    mkfs.bcachefs    $(DESTDIR)$(ROOT_SBINDIR)
-       $(INSTALL) -m0755    mount.bcachefs   $(DESTDIR)$(ROOT_SBINDIR)
-       $(INSTALL) -m0755    fsck.bcachefs    $(DESTDIR)$(ROOT_SBINDIR)/fsck.fuse.bcachefs
-       $(INSTALL) -m0755    mkfs.bcachefs    $(DESTDIR)$(ROOT_SBINDIR)/mkfs.fuse.bcachefs
-       $(INSTALL) -m0755    mount.fuse.bcachefs        $(DESTDIR)$(ROOT_SBINDIR)
        $(INSTALL) -m0644 -D bcachefs.8    -t $(DESTDIR)$(PREFIX)/share/man/man8/
        $(INSTALL) -m0755 -D initramfs/script $(DESTDIR)$(INITRAMFS_SCRIPT)
        $(INSTALL) -m0755 -D initramfs/hook   $(DESTDIR)$(INITRAMFS_HOOK)
+       $(LN) -sr $(DESTDIR)$(ROOT_SBINDIR)/bcachefs $(DESTDIR)$(ROOT_SBINDIR)/mkfs.bcachefs
+       $(LN) -sr $(DESTDIR)$(ROOT_SBINDIR)/bcachefs $(DESTDIR)$(ROOT_SBINDIR)/fsck.bcachefs
+       $(LN) -sr $(DESTDIR)$(ROOT_SBINDIR)/bcachefs $(DESTDIR)$(ROOT_SBINDIR)/mount.bcachefs
+       $(LN) -sr $(DESTDIR)$(ROOT_SBINDIR)/bcachefs $(DESTDIR)$(ROOT_SBINDIR)/mkfs.fuse.bcachefs
+       $(LN) -sr $(DESTDIR)$(ROOT_SBINDIR)/bcachefs $(DESTDIR)$(ROOT_SBINDIR)/fsck.fuse.bcachefs
+       $(LN) -sr $(DESTDIR)$(ROOT_SBINDIR)/bcachefs $(DESTDIR)$(ROOT_SBINDIR)/mount.fuse.bcachefs
 
        sed -i '/^# Note: make install replaces/,$$d' $(DESTDIR)$(INITRAMFS_HOOK)
        echo "copy_exec $(ROOT_SBINDIR)/bcachefs /sbin/bcachefs" >> $(DESTDIR)$(INITRAMFS_HOOK)
index e0e2045852415064a100e29818555f2cd74fdef2..827996f8b3ecb7ecb2e638ac1e59ee11d8544b3d 100644 (file)
@@ -188,6 +188,24 @@ int main(int argc, char *argv[])
 
        full_cmd = argv[0];
 
+       /* Are we being called via a symlink? */
+
+       if (strstr(full_cmd, "mkfs"))
+               return cmd_format(argc, argv);
+
+       if (strstr(full_cmd, "fsck"))
+               return cmd_fsck(argc, argv);
+
+#ifdef BCACHEFS_FUSE
+       if (strstr(full_cmd, "mount.fuse"))
+               return cmd_fusemount(argc, argv);
+#endif
+
+#ifndef BCACHEFS_NO_RUST
+       if (strstr(full_cmd, "mount"))
+               return cmd_mount(argc, argv);
+#endif
+
        setvbuf(stdout, NULL, _IOLBF, 0);
 
        char *cmd = pop_cmd(&argc, argv);
@@ -253,9 +271,8 @@ int main(int argc, char *argv[])
        if (!strcmp(cmd, "setattr"))
                return cmd_setattr(argc, argv);
 #ifndef BCACHEFS_NO_RUST
-       if (!strcmp(cmd, "mount")) {
+       if (!strcmp(cmd, "mount"))
                return cmd_mount(argc, argv);
-       }
 #endif
 
 #ifdef BCACHEFS_FUSE
diff --git a/fsck.bcachefs b/fsck.bcachefs
deleted file mode 100755 (executable)
index f8de4a8..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-SDIR="$(readlink -f "$0")"
-exec "${SDIR%/*}/bcachefs" fsck "$@"
diff --git a/mkfs.bcachefs b/mkfs.bcachefs
deleted file mode 100755 (executable)
index b3631ba..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-SDIR="$(readlink -f "$0")"
-exec "${SDIR%/*}/bcachefs" format "$@"
diff --git a/mount.bcachefs b/mount.bcachefs
deleted file mode 100755 (executable)
index 5900232..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-SDIR="$(readlink -f "$0")"
-exec "${SDIR%/*}/bcachefs" mount "$@"
diff --git a/mount.fuse.bcachefs b/mount.fuse.bcachefs
deleted file mode 100755 (executable)
index 115b3d0..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-exec bcachefs fusemount "$@"