#!/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_add "$IMG" "$TS_MOUNTPOINT-1" "ext3" "loop"
$TS_CMD_MOUNT -a >> $TS_OUTPUT 2>&1

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

$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

