#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/system/bin

# Based on the script from https://github.com/DontBeAPadavan/chroot-debian

#Нужно задать папку, где установлена система Entware
CHROOT_DIR=

if [ ! -d "$CHROOT_DIR" ] ; then
    echo "Директория, где установлена система Entware не задана или не существует"
	exit 1
fi

MountedDirCount="$(mount | grep $CHROOT_DIR | wc -l)"

start() {

	if [ $MountedDirCount -gt 0 ]; then
		echo 'Система Entware уже запущена'
		exit 1
	fi
	
	for dir in dev dev/pts proc sys; do
		mount -o bind /$dir $CHROOT_DIR/$dir
	done
	
	PATH=/opt/bin:/opt/sbin:/bin:/sbin $CHROOT_DIR/bin/busybox chroot $CHROOT_DIR /opt/etc/init.d/rc.unslung start
	
#Тут определим список дополнительно монтируемых папок с устройства

#	Это для qnap nas
#	EXTRA_DIRS="/share/CACHEDEV1_DATA"

#	Это для Android с "экосистемой" apex
#	EXTRA_DIRS="/system /apex/com.android.runtime /product /vendor /data /mnt /storage /storage/emulated"
#	for dir in $EXTRA_DIRS
#	do
#		mkdir -p $CHROOT_DIR$dir
#		mount -o bind $dir $CHROOT_DIR$dir
#	done	
}

stop() {
	if [ $MountedDirCount -eq 0 ]; then
		echo 'Система Entware уже ранее остановлена'
		exit 1
	fi
#все останавливаем в обратном порядке
#Ниже пример для Android с "экосистемой" apex
	EXTRA_DIRS="/storage/emulated /storage /mnt /data /vendor /product /apex/com.android.runtime /system"
	for dir in $EXTRA_DIRS
	do
		umount $CHROOT_DIR$dir
	done
	
	PATH=/opt/bin:/opt/sbin:/bin:/sbin $CHROOT_DIR/bin/busybox chroot $CHROOT_DIR /opt/etc/init.d/rc.unslung stop
	
	for dir in dev/pts dev proc sys; do
		umount $CHROOT_DIR/$dir 2>/dev/null
	done
}

status() {
	if [ $MountedDirCount -gt 0 ]; then
		echo 'Entware запущена'
	else
		echo 'Entware не запущена'
	fi
}

case "$1" in
	start)
		start
	;;
	stop)
		stop
	;;
	restart)
		stop
		sleep 2
		start
	;;
	status)
		status
	;;
	*)
		echo "Usage: $0 (start|stop|restart|status)"
		start
		;;
esac
