mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-11-03 23:40:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			867 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			867 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
# Runs the supplied bash command string in a temporary workspace directory.
 | 
						|
# Usage: intemp.sh [-t prefix] <command>
 | 
						|
# Requires: mktemp
 | 
						|
 | 
						|
set -o errexit
 | 
						|
set -o nounset
 | 
						|
set -o pipefail
 | 
						|
 | 
						|
opt_flag=${1:-}
 | 
						|
[ -z "${opt_flag}" ] && echo "No command supplied" >&2 && exit 1
 | 
						|
 | 
						|
if [ "${opt_flag}" == "-t" ]; then
 | 
						|
  shift
 | 
						|
  prefix=${1:-}
 | 
						|
  [ -z "${prefix}" ] && echo "No prefix supplied" >&2 && exit 1
 | 
						|
  shift
 | 
						|
else
 | 
						|
  prefix='temp'
 | 
						|
fi
 | 
						|
 | 
						|
cmd="$1"
 | 
						|
[ -z "${cmd}" ] && echo "No command supplied" >&2 && exit 1
 | 
						|
 | 
						|
workspace=$(mktemp -d "${TMPDIR:-/tmp}/${prefix}.XXXXXX")
 | 
						|
echo "Workspace created: ${workspace}" 1>&2
 | 
						|
 | 
						|
cleanup() {
 | 
						|
  local -r workspace="$1"
 | 
						|
  rm -rf "${workspace}"
 | 
						|
  echo "Workspace deleted: ${workspace}" 1>&2
 | 
						|
}
 | 
						|
trap "cleanup '${workspace}'" EXIT
 | 
						|
 | 
						|
pushd "${workspace}" > /dev/null
 | 
						|
bash -ceu "${cmd}"
 | 
						|
popd > /dev/null
 | 
						|
 | 
						|
trap - EXIT
 | 
						|
cleanup "${workspace}"
 |