summaryrefslogtreecommitdiffstats
path: root/source/l/shared-mime-info/doinst.sh
diff options
context:
space:
mode:
Diffstat (limited to 'source/l/shared-mime-info/doinst.sh')
-rw-r--r--source/l/shared-mime-info/doinst.sh19
1 files changed, 17 insertions, 2 deletions
diff --git a/source/l/shared-mime-info/doinst.sh b/source/l/shared-mime-info/doinst.sh
index bce08d419..387262254 100644
--- a/source/l/shared-mime-info/doinst.sh
+++ b/source/l/shared-mime-info/doinst.sh
@@ -1,4 +1,19 @@
+#!/bin/sh
if [ -x /usr/bin/update-mime-database ]; then
- chroot . /usr/bin/update-mime-database /usr/share/mime 1>/dev/null 2>/dev/null
+ /usr/bin/update-mime-database /usr/share/mime 1>/dev/null 2>/dev/null
+ cat /etc/passwd | while read passwdline ; do
+ homedir=$(echo $passwdline | cut -f 6 -d :)
+ if [ -d $homedir/.local/share/mime ]; then
+ username=$(echo $passwdline | cut -f 1 -d :)
+ # Sorry about the long command line, alienBOB ;-)
+ su $username -c "/usr/bin/update-mime-database $homemimedir 1>/dev/null 2>/dev/null" 2> /dev/null
+ fi
+ done
+ # This is just "cleanup" in case something might be missed in /home/*/
+ for homemimedir in /home/*/.local/share/mime ; do
+ if [ -d $homemimedir ]; then
+ username=$(echo $homemimedir | cut -f 3 -d /)
+ su $username -c "/usr/bin/update-mime-database $homemimedir 1>/dev/null 2>/dev/null" 2> /dev/null
+ fi
+ done
fi
-