2 # Author: Elan Ruusamäe <glen@pld-linux.org>
4 # See more browser-plugins.README
7 # - implement blacklist.d/anyfile-browser.arch.blacklist support
8 # - check not to link amd64 plugins to opera.i386 dir
10 sysconfdir='/etc/browser-plugins'
11 browsersdir="$sysconfdir/browsers.d"
12 blacklistdir="$sysconfdir/blacklist.d"
13 plugindirs='/usr/lib/browser-plugins /usr/lib64/browser-plugins'
15 # bool in_blacklist(char *blacklistfile, char *pluginfile)
16 # returns true if pluginfile is listed in blacklistfile
18 local blacklistfile="$1"
21 if [[ "$glob" = \#* ]] || [[ "$glob" = "" ]]; then
24 if [[ "$pluginfile" = $glob ]]; then
25 echo >&3 " $pluginfile blacklisted with $glob ($blacklistfile)"
33 # bool blacklisted(char *browser, char *pluginfile)
34 # returns true if pluginfile is blacklisted for browser
38 # check browser blacklist file
39 if [ -f "$blacklistdir/$browser.blacklist" ]; then
40 if in_blacklist "$blacklistdir/$browser.blacklist" "$pluginfile"; then
48 # char **get_browsers(void)
49 # returns list of installed browsers
51 for dir in "$browsersdir"/*.*; do
52 if [ -L "$dir" ]; then
53 dir="${dir#$browsersdir/}"
54 browsers="$browsers $dir"
58 echo >&3 "browsers: $browsers"
61 # char *browserplugindir(char *)
62 # returns plugin directory for browser
66 dir=$(readlink "$browsersdir/$browser")
67 if [ -z "$dir" ]; then
68 echo >&2 "$0: browser plugin dir empty for $browser; exiting!"
76 for browser in $browsers; do
77 find $(browserplugindir "$browser") -type l | while read link; do
78 [ -f "$link" ] || rm -f "$link"
85 for plugindir in $plugindirs; do
86 # skip non-existing plugindirs
87 [ -d "$plugindir" ] || continue
90 find -type f | while read line; do
91 pluginfile="${line#./}"
92 echo >&3 "pluginfile: $pluginfile"
93 for browser in $browsers; do
94 echo >&3 " check $pluginfile for $browser"
95 browserplugindir=$(browserplugindir "$browser")
96 link="$browserplugindir/$pluginfile"
97 if blacklisted "$browser" "$pluginfile"; then
98 # just in case unlink it
99 if [ -f "$link" ]; then
100 echo "Removing $pluginfile from $browserplugindir"
104 # skip existing links
105 [ ! -L $link ] || continue
106 echo "Installing $pluginfile to $browserplugindir"
107 ln -s "$plugindir/$pluginfile" "$link"
114 if [[ "$*" = *debug* ]]; then