#!/bin/bash

#
# Copyright (C) 2016 Stanislav Brabec <sbrabec@suse.cz>
#
# This file is part of util-linux.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
TS_TOPDIR="${0%/*}/../.."
TS_DESC="loop (fstab)"

. $TS_TOPDIR/functions.sh
ts_init "$*"

ts_check_test_command "$TS_CMD_MOUNT"
ts_check_test_command "$TS_CMD_UMOUNT"

ts_skip_nonroot
ts_check_losetup
ts_check_prog "mkfs.ext3"

IMG=$(ts_image_init)

mkfs.ext3 -F $IMG &> /dev/null || ts_die "Cannot make ext3 on $IMG"

[ -d "$TS_MOUNTPOINT-1" ] || mkdir -p $TS_MOUNTPOINT-1
[ -d "$TS_MOUNTPOINT-2" ] || mkdir -p $TS_MOUNTPOINT-2

ts_fstab_lock
ts_fstab_open

ts_fstab_addline "$IMG" "$TS_MOUNTPOINT-1" "ext3" "loop"
$TS_CMD_MOUNT -a >> $TS_OUTPUT 2>&1

ts_fstab_addline "$IMG" "$TS_MOUNTPOINT-2" "ext3" "loop"
$TS_CMD_MOUNT -a >> $TS_OUTPUT 2>&1

ts_fstab_close

$TS_CMD_UMOUNT "$TS_MOUNTPOINT-1" >> $TS_OUTPUT 2>&1
$TS_CMD_UMOUNT "$TS_MOUNTPOINT-2" >> $TS_OUTPUT 2>&1

ts_fstab_clean

ts_log "Success"
ts_finalize

