yunohost/data/helpers.d/filesystem

41 lines
1.2 KiB
Text

CAN_BIND=1
# Bind a directory or copy it on error
#
# usage: ynh_bind_or_cp srcdir destdir as_root
# | arg: srcdir - directory to bind or copy
# | arg: destdir - mountpoint or destination directory
# | arg: as_root - 1 to execute commands as root
ynh_bind_or_cp() {
SRCDIR=$1
DESTDIR=$2
SUDO_CMD="sudo"
[[ "$3" != "1" ]] && SUDO_CMD=""
if [[ $CAN_BIND == 1 ]]; then
$SUDO_CMD mkdir -p $DESTDIR
$SUDO_CMD mount --bind "$SRCDIR" "$DESTDIR"
if [[ $? == 0 ]]; then
for m in $(mount | grep " $SRCDIR" | awk '{ print $3 }'); do
$SUDO_CMD mount --bind "$m" "${DESTDIR}${m#${SRCDIR}}"
done
return
fi
echo "Error: bind mounting seems to be disabled on your system."
echo "You have maybe to check your apparmor configuration."
CAN_BIND=0
fi
$SUDO_CMD cp -r "$SRCDIR" "$DESTDIR"
}
# Create a directory under /tmp
#
# usage: ynh_mkdir_tmp
# | ret: the created directory path
ynh_mkdir_tmp() {
TMPDIR="/tmp/$(ynh_string_random 6)"
while [ -d $TMPDIR ]; do
TMPDIR="/tmp/$(ynh_string_random 6)"
done
mkdir -p "$TMPDIR" && echo "$TMPDIR"
}