build_module.sh: Added Alpine Linux support
diff --git a/build_module.sh b/build_module.sh
index bf77065..11bd377 100755
--- a/build_module.sh
+++ b/build_module.sh
@@ -1,6 +1,6 @@
 #!/usr/bin/env bash
 #
-# build_module.sh (c) NGINX, Inc. [v0.15 03-Nov-2020] Liam Crilly <liam.crilly@nginx.com>
+# build_module.sh (c) NGINX, Inc., Liam Crilly <liam.crilly@nginx.com>
 #
 # This script supports apt(8) and yum(8) package managers. Installs the minimum
 # necessary prerequisite packages to build 3rd party modules for NGINX Plus.
@@ -9,6 +9,7 @@
 # Obtains pkg-oss tool, creates packaging files and copies in module source.
 #
 # CHANGELOG
+# v0.16 [09-Nov-2020] Added Alpine Linux packaging
 # v0.15 [03-Nov-2020] use latest version tag if -v is specified
 #                     use HTTPS while fetching sources
 # v0.14 [02-Nov-2020] sudo is not mandatory anymore
@@ -146,9 +147,9 @@
 #
 # Locate/select package manager and configure
 #
-if [ `whereis yum | grep -c "^yum: /"` -eq 1 ]; then
-	PKG_MGR=yum
-	PKG_MGR_UP="yum makecache"
+if [ `whereis yum 2>/dev/null | grep -c "^yum: /"` -eq 1 ]; then
+	PKG_MGR_INSTALL="yum install $SAY_YES"
+	PKG_MGR_UPDATE="yum makecache"
 	PKG_FMT=rpm
 	NGINX_PACKAGES="pcre-devel zlib-devel openssl-devel"
 	DEVEL_PACKAGES="rpm-build libxml2 libxslt"
@@ -156,9 +157,9 @@
 	PACKAGING_DIR=rpm/SPECS
 	PACKAGE_SOURCES_DIR=../SOURCES
 	PACKAGE_OUTPUT_DIR=RPMS
-elif [ `whereis apt-get | grep -c "^apt-get: /"` -eq 1 ]; then
-	PKG_MGR="apt-get --no-install-suggests --no-install-recommends"
-	PKG_MGR_UP="apt-get update"
+elif [ `whereis apt-get 2>/dev/null | grep -c "^apt-get: /"` -eq 1 ]; then
+	PKG_MGR_INSTALL="apt-get --no-install-suggests --no-install-recommends install $SAY_YES"
+	PKG_MGR_UPDATE="apt-get update"
 	PKG_FMT=deb
 	NGINX_PACKAGES="libpcre3-dev zlib1g-dev libssl-dev"
 	DEVEL_PACKAGES="devscripts debhelper dpkg-dev quilt lsb-release build-essential libxml2-utils xsltproc"
@@ -166,6 +167,15 @@
 	PACKAGING_DIR=debian
 	PACKAGE_SOURCES_DIR=extra
 	PACKAGE_OUTPUT_DIR="debuild-module-*/"
+elif [ `apk --version | grep -c "^apk-tools"` -eq 1 ]; then
+	PKG_MGR_INSTALL="apk add"
+	PKG_MGR_UPDATE="apk update"
+	PKG_FMT=apk
+	NGINX_PACKAGES="linux-headers openssl-dev pcre-dev zlib-dev"
+	DEVEL_PACKAGES="openssl abuild musl-dev"
+	PACKAGING_ROOT=pkg-oss/alpine/
+	PACKAGING_DIR=alpine
+	PACKAGE_SOURCES_DIR=src
 else
         echo "$ME: ERROR: Could not locate a supported package manager - quitting"
         exit 1
@@ -191,8 +201,8 @@
 	if [ "${1##*.}" == "git" ]; then
 		CORE_PACKAGES="$CORE_PACKAGES git"
 	fi
-	$SUDO $PKG_MGR_UP
-	$SUDO $PKG_MGR install $SAY_YES $CORE_PACKAGES $NGINX_PACKAGES $DEVEL_PACKAGES
+	$SUDO $PKG_MGR_UPDATE
+	$SUDO $PKG_MGR_INSTALL $CORE_PACKAGES $NGINX_PACKAGES $DEVEL_PACKAGES
 fi
 
 #
@@ -259,7 +269,7 @@
 		"zip")
 			echo "$ME: INFO Downloading module source"
 			wget -O $BUILD_DIR/module.zip $1
-			ARCHIVE_DIR=`zipinfo -1 $BUILD_DIR/module.zip | head --lines=1 | cut -f1 -d/`
+			ARCHIVE_DIR=`zipinfo -1 $BUILD_DIR/module.zip | head -n 1 | cut -f1 -d/`
 			unzip $BUILD_DIR/module.zip -d $BUILD_DIR
 			mv $BUILD_DIR/$ARCHIVE_DIR $MODULE_DIR
 			;;
@@ -267,7 +277,7 @@
 			echo "$ME: INFO Downloading module source"
 			# Assume tarball of some kind
 			wget -O $BUILD_DIR/module.tgz $1
-			ARCHIVE_DIR=`tar tfz $BUILD_DIR/module.tgz | head --lines=1 | cut -f1 -d/`
+			ARCHIVE_DIR=`tar tfz $BUILD_DIR/module.tgz | head -n 1 | cut -f1 -d/`
 			cd $BUILD_DIR
 			tar xfz module.tgz
 			mv $ARCHIVE_DIR $MODULE_DIR
@@ -423,16 +433,19 @@
 
 cp Makefile.module-$MODULE_NAME $BUILD_DIR/pkg-oss/rpm/SPECS/
 cp Makefile.module-$MODULE_NAME $BUILD_DIR/pkg-oss/debian/
+cp Makefile.module-$MODULE_NAME $BUILD_DIR/pkg-oss/alpine/
 
 #
 # Build!
 #
 echo "$ME: INFO: Building"
 
-if [ "$PKG_MGR" = "yum" ]; then
+if [ "$PKG_FMT" = "rpm" ]; then
 	cd $BUILD_DIR/pkg-oss/rpm/SPECS
-else
+elif [ "$PKG_FMT" = "deb" ]; then
 	cd $BUILD_DIR/pkg-oss/debian
+else
+	cd $BUILD_DIR/pkg-oss/alpine
 fi
 
 if [ "$BUILD_PLATFORM" = "Plus" ]; then
@@ -449,7 +462,11 @@
 	find $BUILD_DIR/$PACKAGING_ROOT -type f -name "*.so" -print
 
 	echo "$ME: INFO: Module packages created"
-	find $BUILD_DIR/$PACKAGING_ROOT$PACKAGE_OUTPUT_DIR -type f -name "*.$PKG_FMT" -exec $COPY_CMD -v {} $OUTPUT_DIR/ \;
+	if [ "$PKG_FMT" = "apk" ]; then
+		find ~/packages -type f -name "*.$PKG_FMT" -exec $COPY_CMD -v {} $OUTPUT_DIR/ \;
+	else
+		find $BUILD_DIR/$PACKAGING_ROOT$PACKAGE_OUTPUT_DIR -type f -name "*.$PKG_FMT" -exec $COPY_CMD -v {} $OUTPUT_DIR/ \;
+	fi
 	echo "$ME: INFO: Removing $BUILD_DIR"
 	rm -fr $BUILD_DIR
 fi