Index: third_party/xdg-utils/scripts/xdg-desktop-icon.in |
=================================================================== |
--- third_party/xdg-utils/scripts/xdg-desktop-icon.in (revision 0) |
+++ third_party/xdg-utils/scripts/xdg-desktop-icon.in (revision 0) |
@@ -0,0 +1,151 @@ |
+#!/bin/sh |
+#--------------------------------------------- |
+# xdg-desktop-icon |
+# |
+# Utility script to install desktop items on a Linux desktop. |
+# |
+# Refer to the usage() function below for usage. |
+# |
+# Copyright 2006, Kevin Krammer <kevin.krammer@gmx.at> |
+# Copyright 2006, Jeremy White <jwhite@codeweavers.com> |
+# |
+# LICENSE: |
+# |
+#--------------------------------------------- |
+ |
+usage() |
+{ |
+cat << _USAGE |
+_USAGE |
+} |
+ |
+manualpage() |
+{ |
+cat << _MANUALPAGE |
+_MANUALPAGE |
+} |
+ |
+#@xdg-utils-common@ |
+ |
+[ x"$1" != x"" ] || exit_failure_syntax |
+ |
+action= |
+desktop_file= |
+ |
+case $1 in |
+ install) |
+ action=install |
+ ;; |
+ |
+ uninstall) |
+ action=uninstall |
+ ;; |
+ |
+ *) |
+ exit_failure_syntax "unknown command '$1'" |
+ ;; |
+esac |
+ |
+shift |
+ |
+vendor=true |
+while [ $# -gt 0 ] ; do |
+ parm=$1 |
+ shift |
+ |
+ case $parm in |
+ --novendor) |
+ vendor=false |
+ ;; |
+ |
+ -*) |
+ exit_failure_syntax "unexpected option '$parm'" |
+ ;; |
+ |
+ *) |
+ if [ -n "$desktop_file" ] ; then |
+ exit_failure_syntax "unexpected argument '$parm'" |
+ fi |
+ if [ "$action" = "install" ] ; then |
+ check_input_file "$parm" |
+ fi |
+ desktop_file=$parm |
+ ;; |
+ esac |
+done |
+ |
+# Shouldn't happen |
+if [ -z "$action" ] ; then |
+ exit_failure_syntax "command argument missing" |
+fi |
+ |
+if [ -z "$desktop_file" ] ; then |
+ exit_failure_syntax "FILE argument missing" |
+fi |
+ |
+filetype= |
+case $desktop_file in |
+ *.desktop) |
+ filetype=desktop |
+ if [ "$vendor" = "true" -a "$action" = "install" ] ; then |
+ check_vendor_prefix "$desktop_file" |
+ fi |
+ ;; |
+ *) |
+ filetype=other |
+ ;; |
+esac |
+ |
+my_umask=077 |
+desktop_dir="$HOME/Desktop" |
+desktop_dir_kde=`kde${KDE_SESSION_VERSION}-config --userpath desktop 2> /dev/null` |
+if gconftool-2 -g /apps/nautilus/preferences/desktop_is_home_dir 2> /dev/null | grep true > /dev/null; then |
+ desktop_dir_gnome="$HOME" |
+ # Don't create $HOME/Desktop if it doesn't exist |
+ [ -w $desktop_dir ] || desktop_dir= |
+fi |
+if [ -n "$desktop_dir_kde" ]; then |
+ if [ ! -d "$desktop_dir_kde" ]; then |
+ save_umask=`umask` |
+ umask $my_umask |
+ mkdir -p $desktop_dir_kde |
+ umask $save_umask |
+ fi |
+ # Is the KDE desktop dir != $HOME/Desktop ? |
+ if [ x`readlink -f "$desktop_dir"` != x`readlink -f "$desktop_dir_kde"` ]; then |
+ # If so, don't create $HOME/Desktop if it doesn't exist |
+ [ -w $desktop_dir ] || desktop_dir= |
+ else |
+ desktop_dir_kde= |
+ fi |
+fi |
+desktop_dir="$desktop_dir $desktop_dir_kde $desktop_dir_gnome" |
+ |
+basefile=`basename $desktop_file` |
+ |
+DEBUG 1 "$action $desktop_file in $desktop_dir" |
+ |
+case $action in |
+ install) |
+ save_umask=`umask` |
+ umask $my_umask |
+ |
+ for x in $desktop_dir ; do |
+ mkdir -p $x |
+ eval 'cp $desktop_file $x/$basefile'$xdg_redirect_output |
+ done |
+ |
+ umask $save_umask |
+ ;; |
+ |
+ uninstall) |
+ for x in $desktop_dir ; do |
+ rm -f $x/$basefile |
+ done |
+ |
+ ;; |
+esac |
+ |
+exit_success |
+ |
+ |