poky/scripts/patchtest-setup-sharedir
Trevor Gamblin 6e53a778f1 patchtest: add scripts to oe-core
Add the following from the patchtest repo:

- patchtest: core patch testing tool
- patchtest-get-branch: determine the target branch of a patch
- patchtest-get-series: pull patch series from Patchwork
- patchtest-send-results: send test results to selected mailing list
- patchtest-setup-sharedir: create sharedir for use with patchtest guest
  mode
- patchtest.README: instructions for using patchtest based on the README
  in the original repository

Note that the patchtest script was modified slightly from the repo
version to retain compatibility with the oe-core changes.
patchtest-send-results and patchtest-setup-sharedir are also primarily
intended for automated testing in guest mode, but are added for
consistency.

(From OE-Core rev: cf318c3c05fc050b8c838c04f28797325c569c5c)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-17 11:41:34 +01:00

96 lines
2.5 KiB
Bash
Executable File

#!/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 <tgamblin@baylibre.com>
# 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