forked from pool/xdg-utils
dac0db4603
Copy from X11:common:Factory/xdg-utils based on submit request 18111 from user llunak OBS-URL: https://build.opensuse.org/request/show/18111 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xdg-utils?expand=0&rev=9
389 lines
12 KiB
Diff
389 lines
12 KiB
Diff
Index: xdg-utils/scripts/xdg-email
|
|
===================================================================
|
|
RCS file: /cvs/portland/portland/xdg-utils/scripts/xdg-email,v
|
|
retrieving revision 1.37
|
|
retrieving revision 1.39
|
|
diff -u -p -r1.37 -r1.39
|
|
--- xdg-utils/scripts/xdg-email 24 Jan 2008 20:24:50 -0000 1.37
|
|
+++ xdg-utils/scripts/xdg-email 27 Jul 2009 15:44:14 -0000 1.39
|
|
@@ -367,7 +367,7 @@ detectDE()
|
|
|
|
kfmclient_fix_exit_code()
|
|
{
|
|
- version=`kde-config --version 2>/dev/null | grep KDE`
|
|
+ version=`kde${KDE_SESSION_VERSION}-config --version 2>/dev/null | grep KDE`
|
|
major=`echo $version | sed 's/KDE: \([0-9]\).*/\1/'`
|
|
minor=`echo $version | sed 's/KDE: [0-9]*\.\([0-9]\).*/\1/'`
|
|
release=`echo $version | sed 's/KDE: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
|
|
@@ -393,8 +393,13 @@ open_kde()
|
|
fi
|
|
fi
|
|
DEBUG 1 "Running kmailservice \"$1\""
|
|
+ if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
|
|
+ KMAILSERVICE=`kde4-config --locate kmailservice --path exe 2>/dev/null`
|
|
+ else
|
|
+ KMAILSERVICE=`which kmailservice 2>/dev/null`
|
|
+ fi
|
|
# KDE uses locale's encoding when decoding the URI, so set it to UTF-8
|
|
- LC_ALL=C.UTF-8 kmailservice "$1"
|
|
+ LC_ALL=C.UTF-8 $KMAILSERVICE "$1"
|
|
kfmclient_fix_exit_code $?
|
|
|
|
if [ $? -eq 0 ]; then
|
|
Index: xdg-utils/scripts/xdg-mime
|
|
===================================================================
|
|
RCS file: /cvs/portland/portland/xdg-utils/scripts/xdg-mime,v
|
|
retrieving revision 1.46
|
|
retrieving revision 1.56
|
|
diff -u -p -r1.46 -r1.56
|
|
--- xdg-utils/scripts/xdg-mime 4 Nov 2006 06:23:49 -0000 1.46
|
|
+++ xdg-utils/scripts/xdg-mime 31 Jul 2009 06:42:46 -0000 1.56
|
|
@@ -436,7 +436,7 @@ detectDE()
|
|
|
|
kfmclient_fix_exit_code()
|
|
{
|
|
- version=`kde-config --version 2>/dev/null | grep KDE`
|
|
+ version=`kde${KDE_SESSION_VERSION}-config --version 2>/dev/null | grep KDE`
|
|
major=`echo $version | sed 's/KDE: \([0-9]\).*/\1/'`
|
|
minor=`echo $version | sed 's/KDE: [0-9]*\.\([0-9]\).*/\1/'`
|
|
release=`echo $version | sed 's/KDE: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
|
|
@@ -452,7 +452,11 @@ update_mime_database()
|
|
detectDE
|
|
if [ x"$DE" = x"kde" ] ; then
|
|
DEBUG 1 "Running kbuildsycoca"
|
|
- eval 'kbuildsycoca'$xdg_redirect_output
|
|
+ if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
|
|
+ eval 'kbuildsycoca4'$xdg_redirect_output
|
|
+ else
|
|
+ eval 'kbuildsycoca'$xdg_redirect_output
|
|
+ fi
|
|
fi
|
|
fi
|
|
for x in `echo "$PATH:/opt/gnome/bin" | sed 's/:/ /g'`; do
|
|
@@ -466,8 +470,15 @@ update_mime_database()
|
|
|
|
info_kde()
|
|
{
|
|
- DEBUG 1 "Running kfile \"$1\""
|
|
- kfile "$1" 2> /dev/null | head -n 1 | cut -d "(" -f 2 | cut -d ")" -f 1
|
|
+ if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
|
|
+ DEBUG 1 "Running kmimetypefinder \"$1\""
|
|
+ KMIMETYPEFINDER=`which kmimetypefinder 2>/dev/null`
|
|
+ $KMIMETYPEFINDER "$1" 2>/dev/null | head -n 1
|
|
+ else
|
|
+ DEBUG 1 "Running kfile \"$1\""
|
|
+ KFILE=`which kfile 2>/dev/null`
|
|
+ $KFILE "$1" 2> /dev/null | head -n 1 | cut -d "(" -f 2 | cut -d ")" -f 1
|
|
+ fi
|
|
|
|
exit_success
|
|
}
|
|
@@ -483,7 +494,7 @@ info_gnome()
|
|
|
|
info_generic()
|
|
{
|
|
- DEBUG 1 "Running /usr/bin/file -i \"$1\""
|
|
+ DEBUG 1 "Running file -i \"$1\""
|
|
/usr/bin/file -i "$1" 2> /dev/null | cut -d ":" -f 2 | sed s/"^ "//
|
|
|
|
exit_success
|
|
@@ -492,25 +503,47 @@ info_generic()
|
|
make_default_kde()
|
|
{
|
|
# $1 is vendor-name.desktop
|
|
- # $2 is mime/type
|
|
- # Add to $KDE_HOME/share/config/profilerc:
|
|
+ # $2 is mime/type
|
|
+ #
|
|
+ # On KDE 3, add to $KDE_CONFIG_PATH/profilerc:
|
|
# [$2 - 1]
|
|
# Application=$1
|
|
#
|
|
# Remove all [$2 - *] sections, or even better,
|
|
# renumber [$2 - *] sections and remove duplicate
|
|
-
|
|
- default_file="$HOME/.kde/share/config/profilerc"
|
|
- DEBUG 2 "make_default_kde $1 $2"
|
|
+ #
|
|
+ # On KDE 4, add $2=$1 to $XDG_DATA_APPS/mimeapps.list
|
|
+ #
|
|
+ # Example file:
|
|
+ #
|
|
+ # [Added Associations]
|
|
+ # text/plain=kde4-kate.desktop;kde4-kwrite.desktop;
|
|
+ #
|
|
+ # [Removed Associations]
|
|
+ # text/plain=gnome-gedit.desktop;gnu-emacs.desktop;
|
|
+ vendor="$1"
|
|
+ mimetype="$2"
|
|
+ if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
|
|
+ default_dir=`kde4-config --path xdgdata-apps | cut -d ':' -f 1`
|
|
+ default_file="$default_dir/mimeapps.list"
|
|
+ else
|
|
+ default_dir=`kde-config --path config | cut -d ':' -f 1`
|
|
+ default_file="$default_dir/profilerc"
|
|
+ fi
|
|
+ DEBUG 2 "make_default_kde $vendor $mimetype"
|
|
DEBUG 1 "Updating $default_file"
|
|
- mkdir -p "$HOME/.kde/share/config"
|
|
+ mkdir -p "$default_dir"
|
|
[ -f $default_file ] || touch $default_file
|
|
- awk -v application="$1" -v mimetype="$2" '
|
|
+ if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
|
|
+ # FIXME update the required section "[Added Associations]"
|
|
+ DEBUG 1 "NOT IMPLEMENTED YET"
|
|
+ else
|
|
+ awk -v application="$vendor" -v mimetype="$mimetype" '
|
|
BEGIN {
|
|
header_start="[" mimetype " - "
|
|
supress=0
|
|
}
|
|
- {
|
|
+ {
|
|
if (index($0, header_start) == 1 )
|
|
supress=1
|
|
else
|
|
@@ -521,7 +554,7 @@ make_default_kde()
|
|
}
|
|
}
|
|
END {
|
|
- print ""
|
|
+ print ""
|
|
print "[" mimetype " - 1]"
|
|
print "Application=" application
|
|
print "AllowAsDefault=true"
|
|
@@ -530,18 +563,21 @@ make_default_kde()
|
|
print "ServiceType=" mimetype
|
|
}
|
|
' $default_file > ${default_file}.new && mv ${default_file}.new $default_file
|
|
+ fi
|
|
}
|
|
|
|
make_default_generic()
|
|
{
|
|
# $1 is vendor-name.desktop
|
|
- # $2 is mime/type
|
|
+ # $2 is mime/type
|
|
# Add $2=$1 to XDG_DATA_HOME/applications/defaults.list
|
|
xdg_user_dir="$XDG_DATA_HOME"
|
|
[ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share"
|
|
default_file="$xdg_user_dir/applications/defaults.list"
|
|
DEBUG 2 "make_default_generic $1 $2"
|
|
DEBUG 1 "Updating $default_file"
|
|
+ mkdir -p "$xdg_user_dir/applications"
|
|
+ [ -f $default_file ] || touch $default_file
|
|
grep -v "$2=" $default_file > ${default_file}.new 2> /dev/null
|
|
if ! grep "[Default Applications]" ${default_file}.new > /dev/null; then
|
|
echo "[Default Applications]" >> ${default_file}.new
|
|
@@ -573,11 +609,17 @@ defapp_generic()
|
|
defapp_kde()
|
|
{
|
|
MIME="$1"
|
|
- ktradertest=`which ktradertest 2> /dev/null`
|
|
- if [ -n "$ktradertest" ] ; then
|
|
- DEBUG 1 "Running ktradertest \"$MIME\" Application"
|
|
- trader_result=`ktradertest "$MIME" Application 2>/dev/null | grep DesktopEntryPath \
|
|
- | head -n 1 | cut -d ':' -f 2 | cut -d \' -f 2`
|
|
+ if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
|
|
+ KTRADER=`which ktraderclient 2> /dev/null`
|
|
+ MIMETYPE="--mimetype"
|
|
+ SERVICETYPE="--servicetype"
|
|
+ else
|
|
+ KTRADER=`which ktradertest 2> /dev/null`
|
|
+ fi
|
|
+ if [ -n "$KTRADER" ] ; then
|
|
+ DEBUG 1 "Running KDE trader query \"$MIME\" mimetype and \"Application\" servicetype"
|
|
+ trader_result=`$KTRADER $MIMETYPE "$MIME" $SERVICETYPE Application 2>/dev/null \
|
|
+ | grep DesktopEntryPath | head -n 1 | cut -d ':' -f 2 | cut -d \' -f 2`
|
|
if [ -n "$trader_result" ] ; then
|
|
basename "$trader_result"
|
|
exit_success
|
|
@@ -608,16 +650,16 @@ case $1 in
|
|
query)
|
|
shift
|
|
|
|
- if [ -z "$1" ] ; then
|
|
+ if [ -z "$1" ] ; then
|
|
exit_failure_syntax "query type argument missing"
|
|
fi
|
|
-
|
|
+
|
|
case $1 in
|
|
filetype)
|
|
action=info
|
|
|
|
filename="$2"
|
|
- if [ -z "$filename" ] ; then
|
|
+ if [ -z "$filename" ] ; then
|
|
exit_failure_syntax "FILE argument missing"
|
|
fi
|
|
case $filename in
|
|
@@ -631,7 +673,7 @@ case $1 in
|
|
default)
|
|
action=defapp
|
|
mimetype="$2"
|
|
- if [ -z "$mimetype" ] ; then
|
|
+ if [ -z "$mimetype" ] ; then
|
|
exit_failure_syntax "mimetype argument missing"
|
|
fi
|
|
case $mimetype in
|
|
@@ -659,7 +701,7 @@ case $1 in
|
|
action=makedefault
|
|
shift
|
|
|
|
- if [ -z "$1" ] ; then
|
|
+ if [ -z "$1" ] ; then
|
|
exit_failure_syntax "application argument missing"
|
|
fi
|
|
case $1 in
|
|
@@ -686,7 +728,7 @@ shift
|
|
|
|
|
|
if [ "$action" = "makedefault" ]; then
|
|
- if [ -z "$1" ] ; then
|
|
+ if [ -z "$1" ] ; then
|
|
exit_failure_syntax "mimetype argument missing"
|
|
fi
|
|
|
|
@@ -698,7 +740,7 @@ if [ "$action" = "makedefault" ]; then
|
|
esac
|
|
mimetype="$1"
|
|
shift
|
|
-
|
|
+
|
|
make_default_kde "$filename" "$mimetype"
|
|
make_default_generic "$filename" "$mimetype"
|
|
done
|
|
@@ -723,7 +765,7 @@ if [ "$action" = "info" ]; then
|
|
info_gnome "$filename"
|
|
;;
|
|
|
|
- generic)
|
|
+ *)
|
|
info_generic "$filename"
|
|
;;
|
|
esac
|
|
@@ -763,7 +805,7 @@ while [ $# -gt 0 ] ; do
|
|
system)
|
|
mode="system"
|
|
;;
|
|
-
|
|
+
|
|
*)
|
|
exit_failure_syntax "unknown mode '$1'"
|
|
;;
|
|
@@ -842,7 +884,7 @@ DEBUG 3 "xdg_global_dir: $xdg_global_dir
|
|
# Find KDE3 mimelnk directory
|
|
kde_user_dir=
|
|
kde_global_dir=
|
|
-kde_global_dirs=`kde-config --path mime 2> /dev/null`
|
|
+kde_global_dirs=`kde${KDE_SESSION_VERSION}-config --path mime 2> /dev/null`
|
|
DEBUG 3 "kde_global_dirs: $kde_global_dirs"
|
|
first=
|
|
for x in `echo $kde_global_dirs | sed 's/:/ /g'` ; do
|
|
@@ -897,7 +939,7 @@ BEGIN {
|
|
supress=0
|
|
}
|
|
{
|
|
- do
|
|
+ do
|
|
if (supress) {
|
|
if (match($0,/-->/)) {
|
|
$0=substr($0,RSTART+RLENGTH)
|
|
@@ -932,7 +974,7 @@ BEGIN {
|
|
}
|
|
}
|
|
}'`
|
|
-fi
|
|
+fi
|
|
|
|
DEBUG 1 "$action mimetype in $xdg_dir"
|
|
|
|
@@ -948,7 +990,7 @@ case $action in
|
|
|
|
if [ -n "$mimetypes" ] ; then
|
|
# No quotes around $mimetypes
|
|
- for x in $mimetypes ; do
|
|
+ for x in $mimetypes ; do
|
|
DEBUG 1 "Installing $kde_dir/$x.desktop (KDE 3.x support)"
|
|
mkdir -p `dirname $kde_dir/$x.desktop`
|
|
awk < "$filename" '
|
|
@@ -957,7 +999,7 @@ BEGIN {
|
|
supress=0
|
|
}
|
|
{
|
|
- do
|
|
+ do
|
|
if (supress) {
|
|
if (match($0,/-->/)) {
|
|
$0=substr($0,RSTART+RLENGTH)
|
|
@@ -982,7 +1024,7 @@ BEGIN {
|
|
}
|
|
' | awk > $kde_dir/$x.desktop '
|
|
# Extract mimetype $x from the XML file $filename
|
|
-# Note that bash requires us to escape a single quote as '"'"'
|
|
+# Note that bash requires us to escape a single quote as '"'"'
|
|
BEGIN {
|
|
the_type=ARGV[1]
|
|
the_source=ARGV[2]
|
|
@@ -1002,7 +1044,7 @@ BEGIN {
|
|
print "MimeType=" the_type
|
|
the_icon=the_type
|
|
sub("/", "-", the_icon)
|
|
- print "Icon=" the_icon
|
|
+ print "Icon=" the_icon
|
|
}
|
|
}
|
|
}
|
|
@@ -1014,25 +1056,25 @@ BEGIN {
|
|
}
|
|
|
|
if (match($0,/^sub-class-of/)) {
|
|
- if (match($0,/type="[^"]*/) || match($0,/type='"'"'[^'"'"']*/)) {
|
|
+ if (match($0,/type="[^"]*/) || match($0,/type='"'"'[^'"'"']*/)) {
|
|
print "X-KDE-IsAlso=" substr($0,RSTART+6,RLENGTH-6)
|
|
}
|
|
else {
|
|
print "Error: '"'"'type'"'"' argument missing in " RS $0
|
|
- exit 1
|
|
+ exit 1
|
|
}
|
|
}
|
|
if (match($0,/^glob/)) {
|
|
- if (match($0,/pattern="[^"]*/) || match($0,/pattern='"'"'[^'"'"']*/)) {
|
|
+ if (match($0,/pattern="[^"]*/) || match($0,/pattern='"'"'[^'"'"']*/)) {
|
|
glob_patterns = glob_patterns substr($0,RSTART+9,RLENGTH-9) ";"
|
|
}
|
|
else {
|
|
print "Error: '"'"'pattern'"'"' argument missing in " RS $0
|
|
- exit 1
|
|
+ exit 1
|
|
}
|
|
}
|
|
if (match($0,/^comment/)) {
|
|
- if (match($0,/xml:lang="[^"]*/) || match($0,/xml:lang='"'"'[^'"'"']*/)) {
|
|
+ if (match($0,/xml:lang="[^"]*/) || match($0,/xml:lang='"'"'[^'"'"']*/)) {
|
|
lang=substr($0,RSTART+10,RLENGTH-10)
|
|
}
|
|
else {
|
|
@@ -1061,7 +1103,7 @@ END {
|
|
if [ "$?" = "1" ] ; then
|
|
grep -A 10 "^Error:" $kde_dir/$x.desktop >&2
|
|
rm $kde_dir/$x.desktop
|
|
- exit 1
|
|
+ exit 1
|
|
fi
|
|
done
|
|
fi
|
|
@@ -1075,8 +1117,8 @@ END {
|
|
done
|
|
|
|
# No quotes around $mimetypes
|
|
- for x in $mimetypes ; do
|
|
- if grep '^# Installed by xdg-mime' $kde_dir/$x.desktop &>/dev/null ; then
|
|
+ for x in $mimetypes ; do
|
|
+ if grep '^# Installed by xdg-mime' $kde_dir/$x.desktop >/dev/null 2>&1; then
|
|
DEBUG 1 "Removing $kde_dir/$x.desktop (KDE 3.x support)"
|
|
rm -f $kde_dir/$x.desktop
|
|
fi
|