#!/bin/sh
#
# Copyright (C) 2023 Nethesis S.r.l.
# SPDX-License-Identifier: GPL-2.0-only
#

#
# Create a single ext4 partition on the given device.
# Parameters:
# - device, like '/dev/sdb'
#

set -e

eerror()
{
    echo "ERROR: $1"
    exit 1
}

device=$1

[ -z "$device" ] && eerror "Device '$device' not found"
[ ! -e "/sys/class/block/$(basename "$device")" ] && eerror "Device '$device' is not a block device"
mount | grep -q "$device" && eerror "Device '$device' is already mounted"

# cleanup partitions
dd if=/dev/zero of="$device" bs=512 count=1 conv=notrunc 2>/dev/null
# create a single partition
parted -s -a optimal "$device" mklabel gpt -- mkpart primary  1 -1 >/dev/null
# mkfs on newly created partition number 1
partition=$(lsblk $device -o KNAME | sed -n \$p)
partition_no=$(echo $partition | sed -E 's/.*(.)/\1/')
if [ "$partition_no" -eq 1 ]
then
    mkfs.ext4 -q -F -L ns_data /dev/"$partition" >/dev/null
else
    eerror "Wrong partition number '$partition_no'"
fi
echo '{"device": "/dev/'$partition'"}'
