summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRex Dieter <rdieter@fedoraproject.org>2011-03-28 11:49:24 -0500
committerRex Dieter <rdieter@fedoraproject.org>2011-03-28 11:49:24 -0500
commit0fe531fd81740c725a99d09593a280e60692600c (patch)
treea72419555d138ad7e0b099f82f0b3436eaba91a1
parent6acdc595995497e7e909df1a475f4d3172de1104 (diff)
mimetype support for xdg-mime (generic) (BR33094)
-rw-r--r--ChangeLog1
-rw-r--r--scripts/xdg-mime.in16
2 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index ea18e64..52f2714 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,7 @@
2011-03-28 Rex Dieter <rdieter@fedoraproject.org>
* xdg-open cannot detect xfce 4.8 correctly (BR33321)
* xdg-mime's info_generic doesn't normalize symlinks (BR33097)
+ * mimetype support for xdg-mime (generic) (BR33094)
2011-02-01 Rex Dieter <rdieter@fedoraproject.org>
* add support for GNOME 3.x
diff --git a/scripts/xdg-mime.in b/scripts/xdg-mime.in
index 048c3c4..930c141 100644
--- a/scripts/xdg-mime.in
+++ b/scripts/xdg-mime.in
@@ -76,9 +76,14 @@ info_gnome()
if gvfs-info --help 2>/dev/null 1>&2; then
DEBUG 1 "Running gvfs-info \"$1\""
gvfs-info "$1" 2> /dev/null | grep standard::content-type | cut -d' ' -f4
- else
+ elif gnomevfs-info --help 2>/dev/null 1>&2; then
DEBUG 1 "Running gnomevfs-info \"$1\""
gnomevfs-info --slow-mime "$1" 2> /dev/null | grep "^MIME" | cut -d ":" -f 2 | sed s/"^ "//
+ else
+ # according to https://bugs.freedesktop.org/show_bug.cgi?id=33094#c5
+ # neither gvfs-info or gnomevfs-info are present in a default Ubuntu Natty
+ # install, so fallback to info_generic
+ info_generic "$1"
fi
if [ $? -eq 0 ]; then
@@ -90,8 +95,13 @@ info_gnome()
info_generic()
{
- DEBUG 1 "Running file -i \"$1\""
- /usr/bin/file -i "$1" 2> /dev/null | cut -d ":" -f 2 | sed s/"^ "//
+ if mimetype --version >/dev/null 2>&1; then
+ DEBUG 1 "Running mimetype -b \"$1\""
+ mimetype -b "$1"
+ else
+ DEBUG 1 "Running file -i \"$1\""
+ /usr/bin/file -i "$1" 2> /dev/null | cut -d ":" -f 2 | sed s/"^ "//
+ fi
if [ $? -eq 0 ]; then
exit_success