#!/usr/bin/make -f

export DH_RUBY_GEMSPEC=debian/coquelicot.gemspec

create-static-gemspec:
	ruby -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,systemd

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
	umask 022 && \
	ruby -rrubygems -rrubygems/package -rfileutils -rtmpdir -rtimecop -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.]/, ""); \
		time_str = `dpkg-parsechangelog --show-field=Date`.strip; \
		build_time = Time.at(`LC_ALL=C date --date="#{time_str}" +%s`.strip.to_i); \
		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; \
		Dir.mktmpdir("coquelicot-gem") do |tmpdir| \
		  spec.files.each do |file| \
		    if file == "coquelicot.gemspec"; \
		      src = "debian/coquelicot.gemspec"; \
		    else; \
		      src = file; \
		    end; \
		    dest = "#{tmpdir}/#{file}"; \
		    FileUtils.mkdir_p File.dirname(dest); \
		    FileUtils.cp src, dest; \
		  end; \
		  Dir.chdir("#{tmpdir}") do \
		    Timecop.freeze(build_time) do; \
		      Gem::Package.build spec; \
		    end; \
		  end; \
		  FileUtils.mkdir_p "debian/coquelicot/usr/share/coquelicot/public"; \
		  FileUtils.cp "#{tmpdir}/coquelicot-#{spec.version}.gem", \
		               "debian/coquelicot/usr/share/coquelicot/public/coquelicot-#{spec.version}.gem"; \
                end \
		'
	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

override_dh_clean:
	dh_clean
	rm -f public/javascripts/jquery.min.js lib/coquelicot/debian.rb
