#!/usr/bin/make -f

export DH_RUBY_GEMSPEC=debian/coquelicot.gemspec

create-static-gemspec:
	ruby1.9.1 -rrubygems -e ' \
		spec = Gem::Specification.load("coquelicot.gemspec"); \
		spec.files.delete_if { |p| p.start_with? "debian/" }; \
		spec.files << "lib/coquelicot/debian.rb"; \
		spec.files << "public/javascripts/jquery.min.js"; \
		File.write("debian/coquelicot.gemspec", spec.to_ruby); \
		'

%:
	dh $@ --buildsystem=ruby --with ruby

override_dh_auto_install:
	# Create the Gem that we ship as source code (for AGPL compliance)
	cp --preserve=all /usr/share/javascript/jquery/jquery.min.js public/javascripts/jquery.min.js
	ruby1.9.1 -rrubygems -rrubygems/package -r fileutils -e ' \
		debian_version = `dpkg-parsechangelog | sed -n -e "s/^Version: //p"`.strip; \
		_, upstream_version, debian_revision = debian_version.match(/^(.*)-(.*)$$/).to_a; \
		upstream_version.gsub!(/~/, "0."); \
		upstream_version.gsub!(/[^0-9a-zA-Z.]/, ""); \
		debian_revision.gsub!(/~/, "0."); \
		debian_revision.gsub!(/[^0-9a-zA-Z.]/, ""); \
		spec = Gem::Specification.load("debian/coquelicot.gemspec"); \
		if spec.version.to_s != upstream_version; \
		  $$stderr.puts "Please refresh the static gemspec:"; \
		  $$stderr.puts "    debian/rules create-static-gemspec"; \
		  exit 1; \
		end; \
		spec.version = "#{upstream_version}.debian#{debian_revision}"; \
		File.open("lib/coquelicot/debian.rb", "w") do |f| \
		  f.puts "# Generated for the Debian package"; \
		  f.puts "module Coquelicot"; \
		  f.puts "  DEBIAN_VERSION = \"#{spec.version}\""; \
		  f.puts "end"; \
		end; \
		spec.mark_version; \
		spec.validate; \
		File.open("debian/coquelicot-#{spec.version}.gem", "w") do |gem_file| \
		  Gem::Package.open(gem_file, "w", nil) do |pkg| \
		    pkg.metadata = spec.to_yaml; \
		    spec.files.each do |dest| \
		      if dest == "coquelicot.gemspec"; \
		         src = "debian/coquelicot.gemspec"; \
		      else; \
		         src = dest; \
		      end; \
		      next if File.directory?(src); \
		      stat = File.stat(src); \
		      mode = stat.mode & 0777; \
		      size = stat.size; \
		      pkg.add_file_simple(dest, mode, size) do |tar_io| \
		        tar_io.write(open(src, "rb") { |f| f.read }); \
		      end; \
		    end; \
		  end; \
		end; \
		FileUtils.mkdir_p "debian/coquelicot/usr/share/coquelicot/public"; \
		FileUtils.cp "debian/coquelicot-#{spec.version}.gem", \
		             "debian/coquelicot/usr/share/coquelicot/public/coquelicot-#{spec.version}.gem"; \
		'
	dpkg -s libjs-jquery | awk \
		'/^Version:/ { print "coquelicot:Built-Using=jquery (=" $$2 ")" }' \
		>> debian/coquelicot.substvars
	dh_auto_install -O--buildsystem=ruby

override_dh_installman:
	LC_ALL=C.UTF-8 ronn debian/coquelicot.8.ron
	dh_installman -O--buildsystem=ruby

override_dh_installchangelogs:
	dh_installchangelogs -O--buildsystem=ruby NEWS
