diff --git a/debinstall/README.md b/debinstall/README.md new file mode 100644 index 0000000..30cfa23 --- /dev/null +++ b/debinstall/README.md @@ -0,0 +1,2 @@ + * http://unix.stackexchange.com/questions/30303/how-to-create-a-deb-file-manually + * http://unix.stackexchange.com/a/30435 diff --git a/debinstall/deb-src/DEBIAN/control b/debinstall/deb-src/DEBIAN/control new file mode 100644 index 0000000..11d6a54 --- /dev/null +++ b/debinstall/deb-src/DEBIAN/control @@ -0,0 +1,9 @@ +Package: hello-node +Version: 1.0-0 +Section: base +Priority: optional +Architecture: i386 +Depends: +Maintainer: AJ ONeal +Description: HelloNode! The installable NodeJS System Service + Let's you install a nodejs app as a service, just to see how it feels. diff --git a/debinstall/deb-src/DEBIAN/postinst b/debinstall/deb-src/DEBIAN/postinst new file mode 100755 index 0000000..d21eaa8 --- /dev/null +++ b/debinstall/deb-src/DEBIAN/postinst @@ -0,0 +1,4 @@ +#!/bin/bash +# Start the services! + +service hello-node start diff --git a/debinstall/deb-src/DEBIAN/preinst b/debinstall/deb-src/DEBIAN/preinst new file mode 100755 index 0000000..3b8b18f --- /dev/null +++ b/debinstall/deb-src/DEBIAN/preinst @@ -0,0 +1,22 @@ +#!/bin/bash + +# Installs node if it isn't already installed +# +# Don't steamroll over a previously installed node version +# TODO provide a local version of node? + +VER="0.10.4" +ARCH="x86" +if [ `arch | grep 64` ] +then + ARCH="x64" +fi + +# TODO test version +if [ ! -f /usr/local/bin/node ] +then + pushd /tmp + wget -quiet -c "http://nodejs.org/dist/v${VER}/node-v${VER}-linux-${ARCH}.tar.gz" + tar xvf node-v${VER}-linux-${ARCH}.tar.gz -C /tmp/ + cp -a /tmp/node-v${VER}-linux-${ARCH}/* /usr/local/ +fi diff --git a/debinstall/deb-src/DEBIAN/prerm b/debinstall/deb-src/DEBIAN/prerm new file mode 100755 index 0000000..c592226 --- /dev/null +++ b/debinstall/deb-src/DEBIAN/prerm @@ -0,0 +1,4 @@ +#!/bin/bash + +# Stop the appserver: +service hello-node stop diff --git a/debinstall/deb-src/etc/init/hello-node.conf b/debinstall/deb-src/etc/init/hello-node.conf new file mode 100644 index 0000000..73b0d3a --- /dev/null +++ b/debinstall/deb-src/etc/init/hello-node.conf @@ -0,0 +1,15 @@ +# Hello Node System Service +description "Hello Node System Service" + +start on filesystem +stop on runlevel [06] + +console output +respawn + +PATH="/opt/hello-node/bin/:/usr/local/bin:/usr/bin:${PATH}" +script + node /opt/hello-node/bin/server.js + #node /usr/local/lib/hello-node/server.js + #/opt/hello-node/bin/node /opt/hello-node/bin/server.js +end script diff --git a/debinstall/redeb.sh b/debinstall/redeb.sh new file mode 100755 index 0000000..f5c7ae3 --- /dev/null +++ b/debinstall/redeb.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +rm -rf deb-src/opt/hello-node/ +mkdir -p deb-src/opt/ + +rm -rf deb-dist/ +mkdir -p deb-dist/ + +rsync -avhP ../HelloNode/ deb-src/opt/hello-node/ --delete +pushd deb-src/ +tar czf ../deb-dist/data.tar.gz [a-z]* +pushd DEBIAN +tar czf ../../deb-dist/control.tar.gz * +popd +popd + +pushd deb-dist/ +echo 2.0 > ./debian-binary +ar r ../hellonode-1.deb debian-binary control.tar.gz data.tar.gz +popd + +rm -rf deb-src/opt/hello-node/ +rm -rf deb-dist/