#!/bin/sh # # Copyright 2019 Northern.tech AS # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set -e GIT_PROVIDED_TAG_NAME="$(git describe --exact HEAD 2>/dev/null || \ git for-each-ref "refs/heads/*" --format '%(refname:short)' --points-at HEAD 2>/dev/null)" if [ -z "$IMAGE_NAME" -a -z "$GIT_PROVIDED_TAG_NAME" ]; then echo "Could not deduce mendersoftware/mender-convert container version from currently checked out commit. Using latest." 1>&2 fi IMAGE_NAME=${IMAGE_NAME:-"mendersoftware/mender-convert${GIT_PROVIDED_TAG_NAME:+:$GIT_PROVIDED_TAG_NAME}"} CONFIGS_DIRECTORY=${CONFIGS_DIRECTORY:-"$(pwd)/configs"} DEPLOY_DIRECTORY=${DEPLOY_DIRECTORY:-"$(pwd)/deploy"} INPUT_DIRECTORY=${INPUT_DIRECTORY:-"$(pwd)/input"} LOGS_DIRECTORY=${LOGS_DIRECTORY:-"$(pwd)/logs"} WORK_DIRECTORY=${WORK_DIRECTORY:-"$(pwd)/work"} mkdir -p "$DEPLOY_DIRECTORY" mkdir -p "$LOGS_DIRECTORY" # Create a unique log file so we can run multiple containers in parallel LOG_FILE="convert.log.$(date +%s)-$$" echo "using log file at: ${LOGS_DIRECTORY}/${LOG_FILE}" set +e docker run \ --rm \ -v "$CONFIGS_DIRECTORY":/mender-convert/configs \ -v "$INPUT_DIRECTORY":/mender-convert/input \ -v "$LOGS_DIRECTORY":/mender-convert/logs \ -v "$DEPLOY_DIRECTORY":/mender-convert/deploy \ -v "$WORK_DIRECTORY":/mender-convert/work \ --privileged=true \ --cap-add=SYS_MODULE \ -v /dev:/dev \ -v /lib/modules:/lib/modules:ro \ --env MENDER_ARTIFACT_NAME="${MENDER_ARTIFACT_NAME}" \ --env MENDER_CONVERT_LOG_FILE=logs/"${LOG_FILE}" \ --env MENDER_CONVERT_VERSION=${GIT_PROVIDED_TAG_NAME} \ "$IMAGE_NAME" "$@" exit_code=$? echo "Log file available at: ${LOGS_DIRECTORY}/${LOG_FILE}" exit ${exit_code}