Improve option handling errors
The getopts framework just sucks for this, so do it manually.
This commit is contained in:
		
							
								
								
									
										34
									
								
								buildiso.sh
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								buildiso.sh
									
									
									
									
									
								
							| @@ -32,23 +32,33 @@ show_help() { | ||||
|     echo -e "   -k: Preserve live-build config." | ||||
| } | ||||
|  | ||||
| while getopts "h?o:u:ak" opt; do | ||||
|     case "$opt" in | ||||
|         h|\?) | ||||
| while [ $# -gt 0 ]; do | ||||
|     case "${1}" in | ||||
|         -h|\?) | ||||
|             show_help | ||||
|             exit 0 | ||||
|         ;; | ||||
|         o) | ||||
|             isofilename=$OPTARG | ||||
|         -o) | ||||
|             isofilename="${2}" | ||||
|             shift 2 | ||||
|         ;; | ||||
|         u) | ||||
|             deployusername=$OPTARG | ||||
|         -u) | ||||
|             deployusername="${2}" | ||||
|             shift 2 | ||||
|         ;; | ||||
|         a) | ||||
|         -a) | ||||
|             preserve_artifacts='y' | ||||
|             shift | ||||
|         ;; | ||||
|         k) | ||||
|         -k) | ||||
|             preserve_livebuild='y' | ||||
|             shift | ||||
|         ;; | ||||
|         *) | ||||
|             echo "Invalid option: ${1}" | ||||
|             echo | ||||
|             show_help | ||||
|             exit 1 | ||||
|         ;; | ||||
|     esac | ||||
| done | ||||
| @@ -59,6 +69,12 @@ PACKAGE_LIST_NONFREE="firmware-bnx2 firmware-bnx2x" | ||||
| mkdir -p artifacts/lb | ||||
| pushd artifacts/lb | ||||
|  | ||||
| if diff -q ../../install.sh config/includes.chroot/install.sh &>/dev/null; then | ||||
|     echo -n "Pre-cleaning due to differences in install.sh... " | ||||
|     lb clean | ||||
|     echo "done." | ||||
| fi | ||||
|  | ||||
| # Initialize the live-build config | ||||
| lb config --distribution buster --architectures amd64 --archive-areas "main contrib non-free" --apt-recommends false | ||||
|  | ||||
|   | ||||
							
								
								
									
										33
									
								
								buildpxe.sh
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								buildpxe.sh
									
									
									
									
									
								
							| @@ -31,26 +31,37 @@ show_help() { | ||||
|     echo -e "   -i: Preserve live-build ISO image." | ||||
| } | ||||
|  | ||||
| while getopts "h?o:u:aki" opt; do | ||||
|     case "$opt" in | ||||
|         h|\?) | ||||
| while [ $# -gt 0 ]; do | ||||
|     case "${1}" in | ||||
|         -h|\?) | ||||
|             show_help | ||||
|             exit 0 | ||||
|         ;; | ||||
|         o) | ||||
|             outputdir="$OPTARG" | ||||
|         -o) | ||||
|             outputdir="${2}" | ||||
|             shift 2 | ||||
|         ;; | ||||
|         u) | ||||
|             deployusername=$OPTARG | ||||
|         -u) | ||||
|             deployusername="${2}" | ||||
|             shift 2 | ||||
|         ;; | ||||
|         a) | ||||
|         -a) | ||||
|             preserve_artifacts='-a' | ||||
|             shift | ||||
|         ;; | ||||
|         k) | ||||
|         -k) | ||||
|             preserve_livebuild='-l' | ||||
|             shift | ||||
|         ;; | ||||
|         i) | ||||
|         -i) | ||||
|             preserve_liveiso='y' | ||||
|             shift | ||||
|         ;; | ||||
|         *) | ||||
|             echo "Invalid option: ${1}" | ||||
|             echo | ||||
|             show_help | ||||
|             exit 1 | ||||
|         ;; | ||||
|     esac | ||||
| done | ||||
| @@ -73,7 +84,7 @@ build_iso() { | ||||
|             -o pvc-installer_pxe-tmp.iso \ | ||||
|             -u ${deployusername} \ | ||||
|             ${preserve_artifacts} \ | ||||
|             ${preserve_livebuild} | ||||
|             ${preserve_livebuild} || fail "Failed to build ISO." | ||||
| 	fi | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user