~vcs-imports/kupfer/master-new

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#! /usr/bin/env python
import os

from waflib import Options, Utils, Logs

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

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


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

	k_desktop = install_desktop_file("kupfer.desktop")
	x_desktop = install_desktop_file("kupfer-exec.desktop")

	## install kupfer.desktop as a Thunar sendto object
	kd_install = os.path.join(
		Utils.subst_vars(k_desktop.install_path, bld.env), "kupfer.desktop")
	symlink_location = \
		Utils.subst_vars("${DATADIR}/Thunar/sendto/kupfer.desktop", bld.env)
	symlink_target = \
		os.path.relpath(kd_install, os.path.dirname(symlink_location))
	bld.symlink_as(symlink_location, symlink_target)

	## install mimetype descriptions

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


	def update_mime(bld):
		Logs.pprint('GREEN',"Updating mime database")
		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)])

	if bld.is_install and bld.env["AUXDATA_MIME"]:
		bld.add_post_fun(update_mime)

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

	def update_icon_cache(bld):
		icon_dir = Utils.subst_vars('${DATADIR}/icons/hicolor', bld.env)
		if not Options.options.destdir:
			Logs.pprint('GREEN',"Updating Gtk icon cache.")
			command='gtk-update-icon-cache -q -f -t %s' % icon_dir
			bld.exec_command(command)
		else:
			Logs.pprint('YELLOW','Icon cache not updated. After install, run this:')
			Logs.pprint('YELLOW','gtk-update-icon-cache -q -f -t %s'%icon_dir)

	if icons_inst and bld.is_install and bld.env["UPDATE_ICON_CACHE"]:
		bld.add_post_fun(update_icon_cache)