From 7c8e9f87330f96562ce74b37b598543462df774e Mon Sep 17 00:00:00 2001 From: Ian Wienand Date: Wed, 21 Apr 2021 10:40:58 +1000 Subject: [PATCH] dib-run-parts: stop leaving PROFILE_DIR behind When a build fails, we can exit and leave ${PROFILE_DIR} behind. Make sure this is cleaned up with an exit trap. While we're adding a function, update the syntax of the others for consistency. Change-Id: I14499b5ebaaa30126aaa6b3d1bd86ed64f110fda --- diskimage_builder/lib/dib-run-parts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/diskimage_builder/lib/dib-run-parts b/diskimage_builder/lib/dib-run-parts index 014551bc..69d52efa 100755 --- a/diskimage_builder/lib/dib-run-parts +++ b/diskimage_builder/lib/dib-run-parts @@ -23,7 +23,7 @@ set -o pipefail name=$(basename $0) -usage() { +function usage { echo "Usage: $name [OPTION] scripts_directory" echo "Option:" echo " --list print names of all valid files" @@ -35,25 +35,29 @@ usage() { } >&2 -output_prefix() { +function output_prefix { printf "%s " "${name}" >&2 } -output () { +function output { output_prefix echo $* >&2 } -output_printf () { +function output_printf { local FORMAT="$1" shift output_prefix printf "${FORMAT}" $@ >&2 } +function cleanup { + rm -rf ${PROFILE_DIR} +} + # source the environment files from environment.d # arg : target_dir -source_environment() { +function source_environment { local dir=$target_dir/../environment.d local env_files @@ -118,6 +122,7 @@ if [ ${DIB_DEBUG_TRACE} -gt 0 ]; then fi PROFILE_DIR=$(mktemp -d --tmpdir profiledir.XXXXXX) +trap cleanup EXIT # note, run this in a sub-shell so we don't pollute our # own environment with source_environment