mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-30 21:30:16 +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}"
 |