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
65 readlink "$browsersdir/$browser"
70 for browser in $browsers; do
71 find $(browserplugindir "$browser") -type l | while read link; do
72 [ -f "$link" ] || rm -f "$link"
79 for plugindir in $plugindirs; do
80 # skip non-existing plugindirs
81 [ -d "$plugindir" ] || continue
84 find -type f | while read line; do
85 pluginfile="${line#./}"
86 echo >&3 "pluginfile: $pluginfile"
87 for browser in $browsers; do
88 echo >&3 " check $pluginfile for $browser"
89 browserplugindir=$(browserplugindir "$browser")
90 link="$browserplugindir/$pluginfile"
91 if blacklisted "$browser" "$pluginfile"; then
92 # just in case unlink it
93 if [ -f "$link" ]; then
94 echo "Removing $pluginfile from $browserplugindir"
99 [ ! -L $link ] || continue
100 echo "Installing $pluginfile to $browserplugindir"
101 ln -s "$plugindir/$pluginfile" "$link"
108 if [[ "$*" = *debug* ]]; then