mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
41 lines
1.2 KiB
Text
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"
|
|
}
|