#!/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. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # This program 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. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # Author: Trevor Gamblin # 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