#!/usr/bin/make -f
# -*- mode: makefile; coding: utf-8 -*-
# Copyright © 2010, 2011, 2012, 2013 Jonas Smedegaard <dr@jones.dk>
# Description: Main Debian packaging script for Vows
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

include /usr/share/cdbs/1/rules/upstream-tarball.mk
include /usr/share/cdbs/1/rules/utils.mk
include /usr/share/cdbs/1/rules/debhelper.mk

pkg = node-vows

# Needed by upstream build and (always) at runtime
deps = nodejs (>= 0.6.19~dfsg1-3~), node-eyes, node-diff (>= 1.0.3)

# Needed by our packaging
bdeps = patch

# Needed by upstream testsuite
deps-test = node-request

# Needed (often) at runtime
recommends = coffeescript

CDBS_BUILD_DEPENDS +=, $(deps), $(bdeps), $(deps-test)
CDBS_DEPENDS_$(pkg) = $(deps)
CDBS_RECOMMENDS_$(pkg) = $(recommends)

DEB_UPSTREAM_URL = https://github.com/cloudhead/vows/archive
DEB_UPSTREAM_TARBALL_BASENAME = v$(DEB_UPSTREAM_TARBALL_VERSION)
DEB_UPSTREAM_TARBALL_MD5 = 0af6ff98b317c02b98f4640f7bc0ed1c

DEB_INSTALL_DOCS_ALL += README.md

build/$(pkg):: $(if $(filter nocheck,$(DEB_BUILD_OPTIONS)),,debian/stamp-testsuite)
debian/stamp-testsuite:
	cat debian/patches/1001_avoid_explicit_path.patch | patch -tuRp1
	NODE_PATH=lib find test -type f -name '*.js' -not -name failing.js -exec bin/vows '{}' +
	cat debian/patches/1001_avoid_explicit_path.patch | patch -tuNp1
	touch $@
clean::
	rm -f debian/stamp-testsuite

# Hardcode upstream version in main library file
verfile=lib/vows.js
pre-build:: debian/stamp-upstreamtmpstuff
debian/stamp-upstreamtmpstuff: debian/stamp-copyright-check
	mkdir -p debian/bak/$(dir $(verfile))
	[ ! -e $(verfile) ] || [ -e debian/bak/$(verfile) ] || cp $(verfile) debian/bak/$(verfile)
	perl -0 -i -pe 's/(\nvows\.version =)[^\n]*(\n {14}[^\n]*)+/$$1 "$(DEB_UPSTREAM_VERSION)"/' $(verfile)
	@if ! fgrep -xq 'vows.version = "$(DEB_UPSTREAM_VERSION)"' $(verfile); then \
		echo "Failed to hardcode version."; \
		exit 1; \
	fi
	touch $@
clean::
	[ ! -e debian/bak/$(verfile) ] || mv -f debian/bak/$(verfile) $(verfile)
	rm -rf debian/bak
	rm -f debian/stamp-upstreamtmpstuff
