diff options
Diffstat (limited to 'dh_installgsettings')
-rwxr-xr-x | dh_installgsettings | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/dh_installgsettings b/dh_installgsettings new file mode 100755 index 0000000..45b228e --- /dev/null +++ b/dh_installgsettings @@ -0,0 +1,106 @@ +#!/usr/bin/perl + +=head1 NAME + +dh_installgsettings - install GSettings overrides and set dependencies + +=cut + +use strict; +use warnings; +use Debian::Debhelper::Dh_Lib; + +our $VERSION = DH_BUILTIN_VERSION; + +=head1 SYNOPSIS + +B<dh_installgsettings> [S<I<debhelper options>>] [B<--priority=<number>>] + +=head1 DESCRIPTION + +B<dh_installgsettings> is a debhelper program that is responsible for installing +GSettings override files and generating appropriate dependencies on the +GSettings backend. + +The dependency on the backend will be generated in B<${misc:Depends}>. + +=head1 FILES + +=over 4 + +=item debian/I<package>.gsettings-override + +Installed into usr/share/glib-2.0/schemas/10_I<package>.gschema.override in +the package build directory, with "I<package>" replaced by the package name. + +The format of the file is the following: + + [org.gnome.mypackage] + boolean-setting=true + string-setting='string' + ... + +=back + +=head1 OPTIONS + +=over 4 + +=item B<--priority> I<priority> + +Use I<priority> (which should be a 2-digit number) as the override +priority instead of 10. Higher values than ten can be used by +derived distributions (20), blend distributions (50), or site-specific +packages (90). + +=cut + +init(options => { + "priority=s" => \$dh{PRIORITY}, +}); + +my $priority=10; +if (defined $dh{PRIORITY}) { + $priority=$dh{PRIORITY}; +} + +# PROMISE: DH NOOP WITHOUT gsettings-override tmp(usr/share/glib-2.0/schemas) cli-options() + +foreach my $package (@{$dh{DOPACKAGES}}) { + my $tmp=tmpdir($package); + + my $gsettings_schemas_dir = "$tmp/usr/share/glib-2.0/schemas/"; + + my $override = pkgfile($package,"gsettings-override"); + if ($override ne '') { + install_dir($gsettings_schemas_dir); + install_file($override, + "$gsettings_schemas_dir/${priority}_$package.gschema.override"); + } + + if (-d "$gsettings_schemas_dir") { + # Get a list of the schemas + my $schemas = qx_cmd('find', $gsettings_schemas_dir, '-type', 'f', + '(', '-name', '*.xml', '-o', '-name', '*.override', + ')', '-printf', '%P'); + if ($schemas ne '') { + addsubstvar($package, "misc:Depends", "dconf-gsettings-backend | gsettings-backend"); + } + } +} + +=back + +=head1 SEE ALSO + +L<debhelper(7)> + +This program is a part of debhelper. + +=head1 AUTHOR + +Laurent Bigonville <bigon@debian.org>, +Josselin Mouette <joss@debian.org> + +=cut + |