Add commandline argument for config file

A config file can be specified when running build, e.g.:

  ./build.sh myconfig
This commit is contained in:
Sam Tygier 2018-12-18 21:06:18 +00:00 committed by Peter Johnson
parent c80e5e9100
commit 9436cb7f94
3 changed files with 32 additions and 14 deletions

View File

@ -95,6 +95,13 @@ A simple example for building Raspbian:
IMG_NAME='Raspbian'
```
The config file can also be specified on the command line as an argument the `build.sh` or `build-docker.sh` scripts.
```
./build -c myconfig
```
This is parsed after `config` so can be used to override values set there.
## How the build process works

View File

@ -19,24 +19,25 @@ if [ -f config ]; then
source config
fi
while getopts "c:" flag
do
case "$flag" in
c)
EXTRA_CONFIG="$OPTARG"
config_file=( "${config_file[@]}" "--env-file" "$(pwd)/${EXTRA_CONFIG}")
source "$EXTRA_CONFIG"
;;
esac
done
CONTAINER_NAME=${CONTAINER_NAME:-pigen_work}
CONTINUE=${CONTINUE:-0}
PRESERVE_CONTAINER=${PRESERVE_CONTAINER:-0}
if [ "$*" != "" ] || [ -z "${IMG_NAME}" ]; then
if [ -z "${IMG_NAME}" ]; then
echo "IMG_NAME not set in 'config'" 1>&2
echo 1>&2
fi
cat >&2 <<EOF
Usage:
build-docker.sh [options]
Optional environment arguments: ( =<default> )
CONTAINER_NAME=pigen_work set a name for the build container
CONTINUE=1 continue from a previously started container
PRESERVE_CONTAINER=1 keep build container even on successful build
EOF
exit 1
if [ -z "${IMG_NAME}" ]; then
echo "IMG_NAME not set in 'config'" 1>&2
echo 1>&2
exit 1
fi
CONTAINER_EXISTS=$($DOCKER ps -a --filter name="$CONTAINER_NAME" -q)

View File

@ -127,6 +127,16 @@ if [ -f config ]; then
source config
fi
while getopts "c:" flag
do
case "$flag" in
c)
EXTRA_CONFIG="$OPTARG"
source "$EXTRA_CONFIG"
;;
esac
done
if [ -z "${IMG_NAME}" ]; then
echo "IMG_NAME not set" 1>&2
exit 1