Added Node.js support.
This commit is contained in:
@@ -25,6 +25,10 @@ case "$nxt_module" in
|
||||
. auto/modules/ruby
|
||||
;;
|
||||
|
||||
nodejs)
|
||||
. auto/modules/nodejs
|
||||
;;
|
||||
|
||||
*)
|
||||
echo
|
||||
echo $0: error: invalid module \"$nxt_module\".
|
||||
|
||||
161
auto/modules/nodejs
Normal file
161
auto/modules/nodejs
Normal file
@@ -0,0 +1,161 @@
|
||||
|
||||
# Copyright (C) NGINX, Inc.
|
||||
|
||||
|
||||
shift
|
||||
|
||||
for nxt_option; do
|
||||
|
||||
case "$nxt_option" in
|
||||
-*=*) value=`echo "$nxt_option" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;;
|
||||
*) value="" ;;
|
||||
esac
|
||||
|
||||
case "$nxt_option" in
|
||||
--node=*) NXT_NODE="$value" ;;
|
||||
--npm=*) NXT_NPM="$value" ;;
|
||||
--node-gyp=*) NXT_NODE_GYP="$value" ;;
|
||||
|
||||
--help)
|
||||
cat << END
|
||||
|
||||
--node=NAME set node executable
|
||||
--npm=NAME set npm executable
|
||||
--node-gyp=NAME set node-gyp executable
|
||||
|
||||
END
|
||||
exit 0
|
||||
;;
|
||||
|
||||
*)
|
||||
echo
|
||||
echo $0: error: invalid Node option \"$nxt_option\"
|
||||
echo
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
done
|
||||
|
||||
|
||||
if [ ! -f $NXT_AUTOCONF_DATA ]; then
|
||||
echo
|
||||
echo Please run common $0 before configuring module \"$nxt_module\".
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
. $NXT_AUTOCONF_DATA
|
||||
|
||||
|
||||
$echo "configuring nodejs module"
|
||||
$echo "configuring nodejs module..." >> $NXT_AUTOCONF_ERR
|
||||
|
||||
NXT_NODE=${NXT_NODE=node}
|
||||
NXT_NPM=${NXT_NPM=npm}
|
||||
NXT_NODE_GYP=${NXT_NODE_GYP=node-gyp}
|
||||
|
||||
$echo -n "checking for node ..."
|
||||
$echo "checking for node ..." >> $NXT_AUTOCONF_ERR
|
||||
|
||||
if /bin/sh -c "${NXT_NODE} -v" >> $NXT_AUTOCONF_ERR 2>&1; then
|
||||
$echo " found"
|
||||
|
||||
NXT_NODE_VERSION="`${NXT_NODE} -v`"
|
||||
$echo " + node version ${NXT_NODE_VERSION}"
|
||||
|
||||
else
|
||||
$echo " not found"
|
||||
$echo
|
||||
$echo $0: error: no Node found.
|
||||
$echo
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
$echo -n "checking for npm ..."
|
||||
$echo "checking for npm ..." >> $NXT_AUTOCONF_ERR
|
||||
|
||||
if /bin/sh -c "${NXT_NPM} -v" >> $NXT_AUTOCONF_ERR 2>&1; then
|
||||
$echo " found"
|
||||
|
||||
NXT_NPM_VERSION="`${NXT_NPM} -v`"
|
||||
$echo " + npm version ${NXT_NPM_VERSION}"
|
||||
|
||||
else
|
||||
$echo " not found"
|
||||
$echo
|
||||
$echo $0: error: no npm found.
|
||||
$echo
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
$echo -n "checking for node-gyp ..."
|
||||
$echo "checking for node-gyp ..." >> $NXT_AUTOCONF_ERR
|
||||
|
||||
if /bin/sh -c "${NXT_NODE_GYP} -v" >> $NXT_AUTOCONF_ERR 2>&1; then
|
||||
$echo " found"
|
||||
|
||||
NXT_NODE_GYP_VERSION="`${NXT_NODE_GYP} -v`"
|
||||
$echo " + node-gyp version ${NXT_NODE_GYP_VERSION}"
|
||||
|
||||
else
|
||||
$echo " not found"
|
||||
$echo
|
||||
$echo $0: error: no node-gyp found.
|
||||
$echo
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if grep ^$NXT_NODE: $NXT_MAKEFILE 2>&1 > /dev/null; then
|
||||
$echo
|
||||
$echo $0: error: duplicate \"$NXT_NODE\" package configured.
|
||||
$echo
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
NXT_NODE_TMP=${NXT_BUILD_DIR}/src/${NXT_NODE}/unit-http
|
||||
NXT_NODE_TARBALL=${PWD}/${NXT_BUILD_DIR}/${NXT_NODE}-unit-http.tar.gz
|
||||
NXT_NODE_EXPORTS="export UNIT_SRC_PATH=${PWD}/src && \
|
||||
export UNIT_LIB_STATIC_PATH=${PWD}/${NXT_BUILD_DIR}/libunit.a"
|
||||
|
||||
cat << END >> $NXT_MAKEFILE
|
||||
|
||||
.PHONY: ${NXT_NODE}
|
||||
.PHONY: ${NXT_NODE}-copy
|
||||
.PHONY: ${NXT_NODE}-install
|
||||
.PHONY: ${NXT_NODE}-uninstall
|
||||
|
||||
all:
|
||||
|
||||
${NXT_NODE}: ${NXT_NODE}-copy $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC
|
||||
${NXT_NODE_EXPORTS} && \\
|
||||
cd ${NXT_NODE_TMP} && ${NXT_NODE_GYP} configure build clean
|
||||
|
||||
${NXT_NODE}-copy:
|
||||
mkdir -p ${NXT_BUILD_DIR}/src/
|
||||
cp -rp src/nodejs/ ${NXT_BUILD_DIR}/src/${NXT_NODE}
|
||||
|
||||
${NXT_NODE_TARBALL}: ${NXT_NODE}-copy
|
||||
tar -zcvf ${NXT_NODE_TARBALL} -C ${NXT_NODE_TMP} .
|
||||
|
||||
${NXT_NODE}-install: ${NXT_NODE_TARBALL} \
|
||||
$NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC
|
||||
${NXT_NODE_EXPORTS} && \\
|
||||
${NXT_NPM} install -g ${NXT_NODE_TARBALL} --unsafe-perm=true
|
||||
|
||||
${NXT_NODE}-local-install: ${NXT_NODE_TARBALL} \
|
||||
$NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC
|
||||
${NXT_NODE_EXPORTS} && \\
|
||||
mkdir -p \$(DESTDIR) && \\
|
||||
cd \$(DESTDIR) && ${NXT_NPM} install ${NXT_NODE_TARBALL}
|
||||
|
||||
${NXT_NODE}-build: ${NXT_NODE}
|
||||
|
||||
${NXT_NODE}-publish: ${NXT_NODE}
|
||||
cd ${NXT_NODE_TMP} && ${NXT_NPM} publish
|
||||
|
||||
${NXT_NODE}-uninstall:
|
||||
${NXT_NPM} uninstall -g unit-http
|
||||
|
||||
END
|
||||
Reference in New Issue
Block a user