#!/usr/bin/perl

my $HOME = $ENV{'HOME'};

foreach my $line (`dconf dump / | sort -u`) {
	next if $line !~ /^\[/;
	chomp $line;
	$line =~ s/\[//;
	$line =~ s/\]//;
	$dir = "$HOME/.dconf-backup/" . $line;
	$line = "/$line/";
	$line =~ s/\/\//\//g;
	`mkdir -p $dir`;

	open(STUFF, ">", "$dir/__config__.sh") or die $!;
	print STUFF "#!/bin/sh\n\n";
	print STUFF "dconf load $line <<CONFIG_STUFF\n";
	$config_lines = `dconf dump $line`;
	print STUFF $config_lines;
	print STUFF "CONFIG_STUFF\n";
	close STUFF or die $!;
	chmod (0755, "$dir/__config__.sh");
}

foreach my $line (<DATA>) {
	chomp $line;
	next if !$line;
	print ("ignoring $line\n");
        $dir = "$HOME/.dconf-backup" . $line;
	`rm -rf $dir`;
}

__DATA__
/apps/seahorse/listing/
/org/gnome/pomodoro/state/
/org/gnome/desktop/peripherals/touchpad/
/org/gnome/software/
/org/gnome/evince/
/org/gnome/evince/default/
/org/gnome/file-roller/
/org/gnome/gedit/
/org/gnome/nautilus/window-state/
/org/gnome/rhythmbox/
/org/gnome/shell/
/org/gtk/settings/file-chooser/
/org/gnome/desktop/datetime/
/org/virt-manager/

