Skip to content

Commit d0391cb

Browse files
committed
add overlayfs as backup
1 parent 126fa4b commit d0391cb

File tree

4 files changed

+21
-5
lines changed

4 files changed

+21
-5
lines changed

.github/workflows/build.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ jobs:
2525
libfuse2 \
2626
file \
2727
unzip \
28+
patchelf \
2829
unionfs-fuse \
2930
fuse-overlayfs
3031
@@ -47,6 +48,8 @@ jobs:
4748
./appimage-myapp-appdir-template/.remove-appdir-git.sh
4849
4950
cp "$(command -v unionfs)" appimage-myapp-appdir-template/usr/bin/
51+
cp "$(command -v fuse-overlayfs)" appimage-myapp-appdir-template/usr/bin/
52+
patchelf --replace-needed libfuse3.so.3 libfuse3.so appimage-myapp-appdir-template/usr/bin/fuse-overlayfs
5053
ARCH=x86_64 ./appimagetool.AppImage appimage-myapp-appdir-template
5154
5255
#ARCH=aarch64 ./appimagetool.AppImage appimage-myapp-appdir-template

.github/workflows/test.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ jobs:
2525
libfuse2 \
2626
file \
2727
unzip \
28+
patchelf \
2829
unionfs-fuse \
2930
fuse-overlayfs
3031
@@ -47,6 +48,8 @@ jobs:
4748
./appimage-myapp-appdir-template/.remove-appdir-git.sh
4849
4950
cp "$(command -v unionfs)" appimage-myapp-appdir-template/usr/bin/
51+
cp "$(command -v fuse-overlayfs)" appimage-myapp-appdir-template/usr/bin/
52+
patchelf --replace-needed libfuse3.so.3 libfuse3.so appimage-myapp-appdir-template/usr/bin/fuse-overlayfs
5053
ARCH=x86_64 ./appimagetool.AppImage appimage-myapp-appdir-template
5154
5255
#ARCH=aarch64 ./appimagetool.AppImage appimage-myapp-appdir-template

opt/myapp/myapp_script/main.sh

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# AppRun Script version
44
# date -u +%s
5-
MYAPPRUN_VERSION=3.2.1
5+
MYAPPRUN_VERSION=3.2.2
66
export MYAPPRUN_VERSION
77

88

@@ -64,8 +64,16 @@ source ./myapp-plugin-exeinfo.sh 2>/dev/null
6464
source "${HERE}"/core.sh
6565
source "${HERE}"/myapp-debug.sh
6666
source "${HERE}"/myapp-plugin-wine.sh
67-
source "${HERE}"/myapp-plugin-fusetool.sh
6867
source "${HERE}"/myapp-plugin-exeinfo.sh
68+
if [[ "${MYAPP_FUSE}" == "OVERLAYFS" ]];
69+
then
70+
source "${HERE}"/myapp-plugin-overlayfs-fuse.sh
71+
elif [[ "${MYAPP_FUSE}" == "UNIONFS" ]];
72+
then
73+
source "${HERE}"/myapp-plugin-unionfs-fuse.sh
74+
else
75+
source "${HERE}"/myapp-plugin-fusetool.sh
76+
fi
6977

7078
prevent_root
7179

opt/myapp/myapp_script/myapp-plugin-overlayfs-fuse.sh

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,17 +94,17 @@ function mpPlugin_fusetool_mount(){
9494
rm -rf "$WORKDIR_MYAPP"
9595
mkdir -p "$MNT_MYAPP" "$UPPERDIR_MYAPP" "$WORKDIR_MYAPP"
9696

97-
"$UNIONFS_BIN" -o lowerdir="$LOWERDIR_MYAPP",upperdir="$UPPERDIR_MYAPP",workdir="$WORKDIR_MYAPP" "$MNT_MYAPP" || exit 1
97+
"$UNIONFS_BIN" -o squash_to_uid=$UID,lowerdir="$LOWERDIR_MYAPP",upperdir="$UPPERDIR_MYAPP",workdir="$WORKDIR_MYAPP" "$MNT_MYAPP" || exit 1
9898

9999
rm -rf "$WORKDIR_HOME"
100100
mkdir -p "$MNT_HOME" "$UPPERDIR_HOME" "$WORKDIR_HOME"
101101

102102
if [[ -d "$APPDIR/home/public_user" ]];
103103
then
104104
# should also refer home/public_user directory in $APPDIR, if user also add this directory into appimage
105-
"$UNIONFS_BIN" -o lowerdir="$APPDIR/home/public_user":"$LOWERDIR_HOME",upperdir="$UPPERDIR_HOME",workdir="$WORKDIR_HOME" "$MNT_HOME" || exit 1
105+
"$UNIONFS_BIN" -o squash_to_uid=$UID,lowerdir="$APPDIR/home/public_user":"$LOWERDIR_HOME",upperdir="$UPPERDIR_HOME",workdir="$WORKDIR_HOME" "$MNT_HOME" || exit 1
106106
else
107-
"$UNIONFS_BIN" -o lowerdir="$LOWERDIR_HOME",upperdir="$UPPERDIR_HOME",workdir="$WORKDIR_HOME" "$MNT_HOME" || exit 1
107+
"$UNIONFS_BIN" -o squash_to_uid=$UID,lowerdir="$LOWERDIR_HOME",upperdir="$UPPERDIR_HOME",workdir="$WORKDIR_HOME" "$MNT_HOME" || exit 1
108108
fi
109109

110110
PID_MYAPP="$(pgrep -a fuse-overlayfs | grep "$MNT_MYAPP" | awk '{print $1}')"
@@ -130,7 +130,9 @@ function mpPlugin_fusetool_unmount(){
130130
kill -9 "$PID_MYAPP"
131131
kill -9 "$PID_HOME"
132132
sleep 1
133+
echo "[${FUNCNAME[0]}:] umount /tmp/$(basename "$APPDIR").unionfs/opt/${MYAPP_NAME}"
133134
umount "/tmp/$(basename "$APPDIR").unionfs/opt/${MYAPP_NAME}"
135+
echo "[${FUNCNAME[0]}:] umount /tmp/$(basename "$APPDIR").unionfs/home/public_user"
134136
umount "/tmp/$(basename "$APPDIR").unionfs/home/public_user"
135137
echo "[${FUNCNAME[0]}:] removing /tmp/$(basename "$APPDIR").unionfs"
136138
rm -rf "/tmp/$(basename "$APPDIR").unionfs"

0 commit comments

Comments
 (0)