new script to merge global preferences js with prefs.js in Feistermops
[shellsnippets/shellsnippets.git] / other / prefmerge
1 # Copyright © 2016
2 #       Thorsten Glaser <t.glaser@tarent.de>
3 #
4 # Provided that these terms and disclaimer and all copyright notices
5 # are retained or reproduced in an accompanying document, permission
6 # is granted to deal in this work without restriction, including un‐
7 # limited rights to use, publicly perform, distribute, sell, modify,
8 # merge, give away, or sublicence.
9 #
10 # This work is provided “AS IS” and WITHOUT WARRANTY of any kind, to
11 # the utmost extent permitted by applicable law, neither express nor
12 # implied; without malicious intent or gross negligence. In no event
13 # may a licensor, author or contributor be held liable for indirect,
14 # direct, other damage, loss, or other issues arising in any way out
15 # of dealing in the work, even if advised of the possibility of such
16 # damage or existence of a defect, except proven that it results out
17 # of said person’s immediate fault when using the work as intended.
18 #-
19 # Shell-and-Perl snippet to merge M*zilla Firef*x preferences files.
20
21 eval 'cat "$@" | perl "$0"; exit $?'
22 if 0;
23
24 my %foo = ();
25
26 while (<>) {
27         chomp;
28         next unless /^(?:user_)?pref\("([^"]+)",\s+(.*)\);$/;
29
30         print "# overriding $1 from " . $foo{$1} . " to $2\n"
31             if (exists $foo{$1}) && ($foo{$1} ne $2);
32         #print "# $1 = $2\n";
33
34         $foo{$1} = $2;
35 }
36
37 for (sort keys %foo) {
38         print "user_pref(\"$_\", " . $foo{$_} . ");\n";
39 }