#!/bin/sh -e

usage() {
	echo "Usage: $0 {start|stop} {device}"
	exit 1
}

DEVICE=$2
if [  -z "${DEVICE}" ]; then
	usage
fi

SYSBLOCKDEV=/sys/block/$(basename $DEVICE)

ZRAM_SIZE_PERCENT=100
ZRAM_ALGORITHM=lzo-rle

[ -f /etc/default/zram ] && . /etc/default/zram || true

MEMTOTAL=$(grep MemTotal /proc/meminfo | awk '{print $2}')
MEMZRAM=$((${MEMTOTAL}*${ZRAM_SIZE_PERCENT}/100))

start() {
	modprobe -q zram || true

	zramctl -a ${ZRAM_ALGORITHM} -s ${MEMZRAM}KB ${DEVICE}
	mkswap -L "zram-swap" ${DEVICE}

	if [ -n "${ZRAM_SIZE_LIMIT}" ]; then
		echo ${ZRAM_SIZE_LIMIT} >${SYSBLOCKDEV}/mem_limit
	fi
}

stop() {
	echo 1 >${SYSBLOCKDEV}/reset
}

case "$1" in
	start|stop)
		"$1";;
	*)
		usage
esac
