#!/bin/bash -e
#
# patchtest-setup-sharedir: Setup a directory for storing mboxes and
# repositories to be shared with the guest machine, including updates to
# the repos if the directory already exists
#
# Copyright (C) 2023 BayLibre Inc.
#
# SPDX-License-Identifier: GPL-2.0-only
#

# poky repository
POKY_REPO="https://git.yoctoproject.org/poky"

# patchtest repository
PATCHTEST_REPO="https://git.yoctoproject.org/patchtest"

# the name of the directory
SHAREDIR="patchtest_share"

help()
{
    echo "Usage: patchtest-setup-sharedir [ -d | --directory SHAREDIR ]
        [ -p | --patchtest PATCHTEST_REPO ]
        [ -y | --poky POKY_REPO ]"
    exit 2
}

while [ "$1" != "" ]; do
    case $1 in
    -d|--directory)
        SHAREDIR=$2
        shift 2
        ;;
    -p|--patchtest)
        PATCHTEST_REPO=$2
        shift 2
        ;;
    -y|--poky)
        POKY_REPO=$2
        shift 2
        ;;
    -h|--help)
        help
        ;;
    *)
        echo "Unknown option $1"
        help
        ;;
    esac
done

# define MBOX_DIR where the patch series will be stored by
# get-latest-series
MBOX_DIR="${SHAREDIR}/mboxes"

# Create SHAREDIR if it doesn't exist
if [ ! -d "$SHAREDIR" ]; then
    mkdir -p "${SHAREDIR}"
    echo "Created ${SHAREDIR}"
fi

# Create the mboxes directory if it doesn't exist
if [ ! -d "$MBOX_DIR" ]; then
    mkdir -p "${MBOX_DIR}"
    echo "Created ${MBOX_DIR}"
fi

# clone poky if it's not already present; otherwise, update it
if [ ! -d "$POKY_REPO" ]; then
    BASENAME=$(basename ${POKY_REPO})
    git clone "${POKY_REPO}" "${SHAREDIR}/${BASENAME}"
else
    (cd "${SHAREDIR}/$BASENAME" && git pull)
fi

# clone patchtest if it's not already present; otherwise, update it
if [ ! -d "$PATCHTEST_REPO" ]; then
    BASENAME=$(basename ${PATCHTEST_REPO})
    git clone "${PATCHTEST_REPO}" "${SHAREDIR}/${BASENAME}"
else
    (cd "${SHAREDIR}/$BASENAME" && git pull)
fi
