#!/bin/sh
# Copyright (c) 2017-2019, AT&T Intellectual Property.
# All rights reserved.
#
# SPDX-License-Identifier: GPL-2.0-only
#
# Generate dependency to mount System Swap Partition
#
DESTDIR="${1:-/tmp}"

systemd_dir="/lib/systemd/system"
swap_target_wants="${DESTDIR}/swap.target.wants"

gen_systemd_swap_mount () {
	local path=${1:?Epic failure}
	local sysd_fp=${2:?Colossal failure}
	cat <<EOF > ${systemd_dir}/$sysd_fp
[Unit]
Description=Vyatta swap space mounter

[Swap]
What=$path
Options=sw
EOF
}

if ! grep -q vyatta-union /proc/cmdline; then
	exit
fi

if [ -e /dev/disk/by-partlabel/linux-swap ]; then
	mkdir -p "${swap_target_wants}"
	path='/dev/disk/by-partlabel/linux-swap';
	sysd_fp=$(systemd-escape -p --suffix=swap $path)
	gen_systemd_swap_mount $path $sysd_fp
	ln -sf "$systemd_dir/$sysd_fp" "${swap_target_wants}/"
fi

if [ -e /dev/disk/by-id/md-name*vRouter-part1 ]; then
	if parted /dev/disk/by-id/md-name*vRouter-part1 p 2>/dev/null | grep -q linux-swap; then
		path=$(ls /dev/disk/by-id/md-name*vRouter-part1)
		sysd_fp=$(systemd-escape -p --suffix=swap $path)
		mkdir -p "${swap_target_wants}"
		gen_systemd_swap_mount $path $sysd_fp
		ln -sf "${systemd_dir}/$sysd_fp" "${swap_target_wants}/"
	fi
fi
