The pre-install operations may fail, yet that failure is not elevated to the user. This masks the failure and makes early package install issues difficult to troubleshoot. If the basic pre-install script fails, the charm should not proceed to later hooks as the requirements may not be met. Hashbangs for bash should specify -e (errexit) on all of the pre-install bash scripts. Change-Id: I0f41092fac7259863c215505ca305ff92cfae69a Closes-bug: #1815243 Partial-bug: #1815231
		
			
				
	
	
		
			21 lines
		
	
	
		
			425 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			425 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash -e
 | 
						|
# Wrapper to deal with newer Ubuntu versions that don't have py2 installed
 | 
						|
# by default.
 | 
						|
 | 
						|
declare -a DEPS=('apt' 'netaddr' 'netifaces' 'pip' 'yaml' 'dnspython')
 | 
						|
 | 
						|
check_and_install() {
 | 
						|
    pkg="${1}-${2}"
 | 
						|
    if ! dpkg -s ${pkg} 2>&1 > /dev/null; then
 | 
						|
        apt-get -y install ${pkg}
 | 
						|
    fi
 | 
						|
}
 | 
						|
 | 
						|
PYTHON="python3"
 | 
						|
 | 
						|
for dep in ${DEPS[@]}; do
 | 
						|
    check_and_install ${PYTHON} ${dep}
 | 
						|
done
 | 
						|
 | 
						|
exec ./hooks/install.real
 |