Skip to content

Commit cb61eea

Browse files
committed
Create and install the mount helper when building the project, so that we can mount verifs2 using the mount command
1 parent daf4714 commit cb61eea

File tree

2 files changed

+52
-0
lines changed

2 files changed

+52
-0
lines changed

src/CMakeLists.txt

+9
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,13 @@ endif()
2424
target_link_libraries(fuse-cpp-ramfs pthread)
2525
target_link_libraries(ckpt pthread)
2626
target_link_libraries(restore pthread)
27+
add_custom_command(
28+
OUTPUT ${CMAKE_BINARY_DIR}/mount.fuse.fuse-cpp-ramfs
29+
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/create-mount-helper.sh
30+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
31+
add_custom_target(
32+
mount-helper ALL
33+
DEPENDS fuse-cpp-ramfs ${CMAKE_BINARY_DIR}/mount.fuse.fuse-cpp-ramfs)
2734
install(TARGETS fuse-cpp-ramfs DESTINATION bin)
35+
install(PROGRAMS ${CMAKE_BINARY_DIR}/mount.fuse.fuse-cpp-ramfs DESTINATION /sbin)
36+

src/create-mount-helper.sh

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/bin/bash
2+
3+
DEST_DIR=$(pwd)
4+
DEST_NAME=mount.fuse.fuse-cpp-ramfs
5+
DEST=$DEST_DIR/$DEST_NAME
6+
FUSE_RAMFS_BINDIR=$(pwd)
7+
8+
echo '#!/bin/bash' > $DEST
9+
echo '' >> $DEST
10+
echo 'if [ "$#" -lt 2 ]; then' >> $DEST
11+
echo ' echo "Usage: $0 <mount-name> <mount-dir> [-o options]";' >> $DEST
12+
echo ' exit 1;' >> $DEST
13+
echo 'fi' >> $DEST
14+
echo '' >> $DEST
15+
echo "FUSE_RAMFS_BINDIR=$FUSE_RAMFS_BINDIR" >> $DEST
16+
echo 'MNT_NAME=$1' >> $DEST
17+
echo 'MNT_DIR=$2' >> $DEST
18+
echo 'OPTS=' >> $DEST
19+
echo 'FUSE_CPP_RAMFS_PROG=$FUSE_RAMFS_BINDIR/src/fuse-cpp-ramfs' >> $DEST
20+
echo 'FUSE_CPP_RAMFS_MOUNT=$FUSE_RAMFS_BINDIR/mnts' >> $DEST
21+
echo '' >> $DEST
22+
echo '# If there is options string?' >> $DEST
23+
echo 'if [ "$#" -gt 2 ] && [ "$3" == "-o" ]; then' >> $DEST
24+
echo ' OPTS=$4;' >> $DEST
25+
echo 'fi' >> $DEST
26+
echo '' >> $DEST
27+
echo 'mkdir -p $FUSE_CPP_RAMFS_MOUNT' >> $DEST
28+
echo 'ln -fs $FUSE_CPP_RAMFS_PROG $FUSE_CPP_RAMFS_MOUNT/$MNT_NAME' >> $DEST
29+
echo '' >> $DEST
30+
echo 'if [ -n "$OPTS" ]; then' >> $DEST
31+
echo ' nohup $FUSE_CPP_RAMFS_MOUNT/$MNT_NAME -o $OPTS $MNT_DIR 2>&1 > $FUSE_CPP_RAMFS_MOUNT/$MNT_NAME.out &' >> $DEST
32+
echo 'else' >> $DEST
33+
echo ' nohup $FUSE_CPP_RAMFS_MOUNT/$MNT_NAME $MNT_DIR 2>&1 > $FUSE_CPP_RAMFS_MOUNT/$MNT_NAME.out &' >> $DEST
34+
echo 'fi' >> $DEST
35+
echo '' >> $DEST
36+
echo 'if [ -z "$(pgrep $MNT_NAME)" ]; then' >> $DEST
37+
echo ' echo "Mount failed.";' >> $DEST
38+
echo ' exit 1;' >> $DEST
39+
echo 'fi' >> $DEST
40+
echo '' >> $DEST
41+
echo 'exit 0;' >> $DEST
42+
43+
chmod +x $DEST

0 commit comments

Comments
 (0)