#! /usr/bin/env python

import Options
import Utils

def set_options(opt):
	opt.add_option('--no-update-mime',
			action='store_true',
			default=False,
			help='Do not update mime and desktop databases [Default:Update]')

def configure(conf):
	if not Options.options.no_update_mime:
		conf.env["AUXDATA_MIME"] = 1


def build(bld):
	# merge translations into the .desktop file
	# and set it up to be installed
	def install_desktop_file(desktop_subst_file):
		bld.new_task_gen(
			"intltool_in",
			podir="../po",
			flags = ("-d", "-q", "-u", "-c"),
			source = desktop_subst_file  + ".in",
			target = desktop_subst_file,
			install_path = "${DATADIR}/applications",
			chmod = 0755,
		)

	install_desktop_file("kupfer.desktop")
	install_desktop_file("kupfer-exec.desktop")

	# install mimetype descriptions

	mimetypes_file = "kupfer-mimetypes.xml"
	bld.new_task_gen(
		"intltool_in",
		podir="../po",
		flags = ("-x", "-q", "-u", "-c"),
		source = mimetypes_file  + ".in",
		target = mimetypes_file,
		install_path = "${DATADIR}/mime/packages/",
	)

	if bld.is_install and bld.env["AUXDATA_MIME"]:
		bld.exec_command(["update-mime-database",
				Utils.subst_vars("${DATADIR}/mime", bld.env)])
		bld.exec_command(["update-desktop-database",
				Utils.subst_vars("${DATADIR}/applications", bld.env)])

	icons_inst = bld.install_files("${DATADIR}/icons/hicolor/scalable/apps",
	                               "kupfer.svg")

	# Waf's "gnome" tool  -- def postinstall_icons():
	if icons_inst and bld.is_install:
		icon_dir = bld.get_install_path('${DATADIR}/icons/hicolor')
		if not Options.options.destdir:
			Utils.pprint('YELLOW',"Updating Gtk icon cache.")
			command='gtk-update-icon-cache -q -f -t %s' % icon_dir
			ret=Utils.exec_command(command)
		else:
			Utils.pprint('YELLOW','Icon cache not updated. After install, run this:')
			Utils.pprint('YELLOW','gtk-update-icon-cache -q -f -t %s'%icon_dir)
