| OLD | NEW |
| 1 #!/bin/sh | 1 #!/bin/sh |
| 2 #--------------------------------------------- | 2 #--------------------------------------------- |
| 3 # xdg-desktop-menu | 3 # xdg-desktop-menu |
| 4 # | 4 # |
| 5 # Utility script to install menu items on a Linux desktop. | 5 # Utility script to install menu items on a Linux desktop. |
| 6 # Refer to the usage() function below for usage. | 6 # Refer to the usage() function below for usage. |
| 7 # | 7 # |
| 8 # Copyright 2006, Kevin Krammer <kevin.krammer@gmx.at> | 8 # Copyright 2006, Kevin Krammer <kevin.krammer@gmx.at> |
| 9 # Copyright 2006, Jeremy White <jwhite@codeweavers.com> | 9 # Copyright 2006, Jeremy White <jwhite@codeweavers.com> |
| 10 # | 10 # |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 for x in `echo $PATH | sed 's/:/ /g'` /opt/gnome/bin; do | 33 for x in `echo $PATH | sed 's/:/ /g'` /opt/gnome/bin; do |
| 34 if [ -x $x/update-desktop-database ] ; then | 34 if [ -x $x/update-desktop-database ] ; then |
| 35 DEBUG 1 "Running $x/update-desktop-database" | 35 DEBUG 1 "Running $x/update-desktop-database" |
| 36 eval '$x/update-desktop-database'$xdg_redirect_output | 36 eval '$x/update-desktop-database'$xdg_redirect_output |
| 37 return | 37 return |
| 38 fi | 38 fi |
| 39 done | 39 done |
| 40 fi | 40 fi |
| 41 } | 41 } |
| 42 | 42 |
| 43 fixup_mandriva_categories() | |
| 44 { | |
| 45 DEBUG 1 "fixup_mandriva_categories $1" | |
| 46 awk ' | |
| 47 BEGIN { | |
| 48 xlat["AudioVideo"]="X-Mandrakelinux-Multimedia;X-MandrivaLinux-Multimedia" | |
| 49 xlat["Development"]="X-Mandrakelinux-MoreApplications-Development;X-Mandriva
Linux-MoreApplications-Development" | |
| 50 xlat["Education"]="X-Mandrakelinux-MoreApplications;X-MandrivaLinux-MoreAppl
ications-Education" | |
| 51 xlat["Game"]="X-Mandrakelinux-MoreApplications;X-MandrivaLinux-MoreApplicati
ons-Games" | |
| 52 xlat["Graphics"]="X-Mandrakelinux-Multimedia-Graphics" | |
| 53 xlat["Network"]="X-Mandrakelinux-Internet;X-MandrivaLinux-Internet" | |
| 54 xlat["Office"]="X-Mandrakelinux-Office;X-MandrivaLinux-Office" | |
| 55 xlat["System"]="X-Mandrakelinux-System;X-MandrivaLinux-System" | |
| 56 xlat["Utility"]="X-Mandrakelinux-Office-Accessories;X-MandrivaLinux-Office-A
ccessories" | |
| 57 } | |
| 58 { | |
| 59 if (match($0,/Categories=/)) { | |
| 60 split(substr($0,RSTART+11),categories,";") | |
| 61 result="" | |
| 62 for (n in categories) | |
| 63 { | |
| 64 if (categories[n] in xlat) | |
| 65 categories[n]=categories[n] ";" xlat[categories[n]] | |
| 66 if (categories[n]) | |
| 67 result=result categories[n] ";" | |
| 68 } | |
| 69 print "Categories=" result | |
| 70 } | |
| 71 else | |
| 72 { | |
| 73 print $0 | |
| 74 } | |
| 75 }' $1 > $1.new | |
| 76 mv $1.new $1 | |
| 77 } | |
| 78 | |
| 79 # Make application $1/$2 the default for all the mimetypes it support, | 43 # Make application $1/$2 the default for all the mimetypes it support, |
| 80 # iff such mimetype didn't had a default application already. | 44 # iff such mimetype didn't had a default application already. |
| 81 # $1 Install dir for desktop file | 45 # $1 Install dir for desktop file |
| 82 # $2 base name of desktop file | 46 # $2 base name of desktop file |
| 83 make_lazy_default() | 47 make_lazy_default() |
| 84 { | 48 { |
| 85 local mimetypes | 49 local mimetypes |
| 86 local xdg_user_dir | 50 local xdg_user_dir |
| 87 local xdg_default_dirs | 51 local xdg_default_dirs |
| 88 | 52 |
| 89 DEBUG 1 "make_lazy_default $1/$2" | 53 DEBUG 1 "make_lazy_default $1/$2" |
| 90 mimetypes=`awk ' | 54 mimetypes=`awk ' |
| 91 { | 55 { |
| 92 if (match($0,/MimeType=/)) { | 56 if (match($0,/MimeType=/)) { |
| 93 split(substr($0,RSTART+9),mimetypes,";") | 57 split(substr($0,RSTART+9),mimetypes,";") |
| 94 for (n in mimetypes) | 58 for (n in mimetypes) |
| 95 { | 59 { |
| 96 if (mimetypes[n]) | 60 if (mimetypes[n]) |
| 97 print mimetypes[n] | 61 print mimetypes[n] |
| 98 } | 62 } |
| 99 } | 63 } |
| 100 }' "$1/$2" 2> /dev/null` | 64 }' "$1/$2" 2> /dev/null` |
| 101 | 65 |
| 102 for MIME in $mimetypes ; do | 66 for MIME in $mimetypes ; do |
| 103 xdg_default_dirs="$XDG_DATA_DIRS" | 67 xdg_default_dirs="$XDG_DATA_DIRS" |
| 104 [ -n "$xdg_default_dirs" ] || xdg_default_dirs=/usr/local/share/:/usr/sh
are/ | 68 [ -n "$xdg_default_dirs" ] || xdg_default_dirs=/usr/local/share/:/usr/sh
are/ |
| 105 if [ x"$mode" = x"user" ] ; then | 69 if [ x"$mode" = x"user" ] ; then |
| 106 xdg_user_dir="$XDG_DATA_HOME" | 70 xdg_user_dir="$XDG_DATA_HOME" |
| 107 [ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share" | 71 [ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share" |
| 108 xdg_default_dirs="$xdg_user_dir:$xdg_default_dirs" | 72 xdg_default_dirs="$xdg_user_dir:$xdg_default_dirs" |
| 109 fi | 73 fi |
| 110 local default_app | 74 local default_app |
| 111 for x in `echo "$xdg_default_dirs" | sed 's/:/ /g'`; do | 75 for x in `echo "$xdg_default_dirs" | sed 's/:/ /g'`; do |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 xdg_global_dir= | 112 xdg_global_dir= |
| 149 for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do | 113 for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do |
| 150 if [ -w $x/$xdg_dir_name ] ; then | 114 if [ -w $x/$xdg_dir_name ] ; then |
| 151 xdg_global_dir="$x/$xdg_dir_name" | 115 xdg_global_dir="$x/$xdg_dir_name" |
| 152 break | 116 break |
| 153 fi | 117 fi |
| 154 done | 118 done |
| 155 xdg_user_dir="$xdg_user_dir/applications-merged" | 119 xdg_user_dir="$xdg_user_dir/applications-merged" |
| 156 xdg_global_dir="$xdg_global_dir/applications-merged" | 120 xdg_global_dir="$xdg_global_dir/applications-merged" |
| 157 | 121 |
| 158 DEBUG 3 "Install locations for *.menu file:" | 122 DEBUG 3 "Install locations for *.menu file:" |
| 159 DEBUG 3 "xdg_user_dir: $xdg_user_dir" | 123 DEBUG 3 "xdg_user_dir: $xdg_user_dir" |
| 160 DEBUG 3 "xdg_global_dir: $xdg_global_dir" | 124 DEBUG 3 "xdg_global_dir: $xdg_global_dir" |
| 161 DEBUG 3 "kde_user_dir: $kde_user_dir" | 125 DEBUG 3 "kde_user_dir: $kde_user_dir" |
| 162 DEBUG 3 "kde_global_dir: $kde_global_dir" | 126 DEBUG 3 "kde_global_dir: $kde_global_dir" |
| 163 DEBUG 3 "gnome_user_dir: $gnome_user_dir" | 127 DEBUG 3 "gnome_user_dir: $gnome_user_dir" |
| 164 DEBUG 3 "gnome_global_dir: $gnome_global_dir" | 128 DEBUG 3 "gnome_global_dir: $gnome_global_dir" |
| 165 | 129 |
| 166 if [ x"$mode" = x"user" ] ; then | 130 if [ x"$mode" = x"user" ] ; then |
| 167 xdg_dir="$xdg_user_dir" | 131 xdg_dir="$xdg_user_dir" |
| 168 kde_dir="$kde_user_dir" | 132 kde_dir="$kde_user_dir" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 211 fi | 175 fi |
| 212 fi | 176 fi |
| 213 if [ $action = "install" -a x"$mode" = x"user" -a -d "/etc/xdg/menus/kde-app
lications-merged" ] ; then | 177 if [ $action = "install" -a x"$mode" = x"user" -a -d "/etc/xdg/menus/kde-app
lications-merged" ] ; then |
| 214 # Work around for Fedora Core 5 + patched KDE | 178 # Work around for Fedora Core 5 + patched KDE |
| 215 kde_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/kde-appli
cations-merged^'` | 179 kde_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/kde-appli
cations-merged^'` |
| 216 if [ ! -e "$kde_xdg_dir" ] ; then | 180 if [ ! -e "$kde_xdg_dir" ] ; then |
| 217 DEBUG 1 "Fedora Workaround: Link '$xdg_dir' to '$kde_xdg_dir'" | 181 DEBUG 1 "Fedora Workaround: Link '$xdg_dir' to '$kde_xdg_dir'" |
| 218 mkdir -p `dirname "$kde_xdg_dir"` | 182 mkdir -p `dirname "$kde_xdg_dir"` |
| 219 eval 'ln -s "applications-merged" "$kde_xdg_dir"'$xdg_redirect_outpu
t | 183 eval 'ln -s "applications-merged" "$kde_xdg_dir"'$xdg_redirect_outpu
t |
| 220 fi | 184 fi |
| 221 fi | 185 fi |
| 222 if [ $action = "install" -a x"$mode" = x"system" -a -d "/etc/xdg/menus/kde-a
pplications-merged" -a ! -d "/etc/xdg/menus/applications-merged" ] ; then | 186 if [ $action = "install" -a x"$mode" = x"system" -a -d "/etc/xdg/menus/kde-a
pplications-merged" -a ! -d "/etc/xdg/menus/applications-merged" ] ; then |
| 223 # Work around for Kubuntu 6.06 | 187 # Work around for Kubuntu 6.06 |
| 224 kde_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/kde-appli
cations-merged^'` | 188 kde_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/kde-appli
cations-merged^'` |
| 225 DEBUG 1 "Kubuntu Workaround: Link '$xdg_dir' to 'kde-applications-merged
'" | 189 DEBUG 1 "Kubuntu Workaround: Link '$xdg_dir' to 'kde-applications-merged
'" |
| 226 eval 'ln -s "kde-applications-merged" "$xdg_dir"'$xdg_redirect_output | 190 eval 'ln -s "kde-applications-merged" "$xdg_dir"'$xdg_redirect_output |
| 227 fi | 191 fi |
| 228 | 192 |
| 229 orig_menu_file=$xdg_dir/$menu_file | 193 orig_menu_file=$xdg_dir/$menu_file |
| 230 | 194 |
| 231 DEBUG 1 "Updating $orig_menu_file ($action)" | 195 DEBUG 1 "Updating $orig_menu_file ($action)" |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 266 # Files to uninstall are listed in $tmpfile | 230 # Files to uninstall are listed in $tmpfile |
| 267 # Existing files are in $orig_desktop_files | 231 # Existing files are in $orig_desktop_files |
| 268 for desktop_file in $orig_desktop_files; do | 232 for desktop_file in $orig_desktop_files; do |
| 269 if ! grep '^'$desktop_file'$' $tmpfile > /dev/null 2> /dev/null; the
n | 233 if ! grep '^'$desktop_file'$' $tmpfile > /dev/null 2> /dev/null; the
n |
| 270 # Keep this file, it's not in the uninstall list | 234 # Keep this file, it's not in the uninstall list |
| 271 new_desktop_files="$new_desktop_files $desktop_file" | 235 new_desktop_files="$new_desktop_files $desktop_file" |
| 272 fi | 236 fi |
| 273 done | 237 done |
| 274 fi | 238 fi |
| 275 rm -f "$tmpfile" | 239 rm -f "$tmpfile" |
| 276 | 240 |
| 277 DEBUG 3 "Files to list in $menu_file: $new_desktop_files" | 241 DEBUG 3 "Files to list in $menu_file: $new_desktop_files" |
| 278 | 242 |
| 279 if [ -n "$new_desktop_files" ] ; then | 243 if [ -n "$new_desktop_files" ] ; then |
| 280 # Install/update | 244 # Install/update |
| 281 test "${TMPDIR+set}" = set || TMPDIR=/tmp | 245 test "${TMPDIR+set}" = set || TMPDIR=/tmp |
| 282 tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX` | 246 tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX` |
| 283 ( | 247 ( |
| 284 echo '<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"' | 248 echo '<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"' |
| 285 echo ' "http://www.freedesktop.org/standards/menu-spec/menu-1.0.d
td">' | 249 echo ' "http://www.freedesktop.org/standards/menu-spec/menu-1.0.d
td">' |
| 286 echo '<!-- Do not edit manually - generated and managed by @NAME@ --
>' | 250 echo '<!-- Do not edit manually - generated and managed by @NAME@ --
>' |
| 287 echo '<Menu>' | 251 echo '<Menu>' |
| 288 echo ' <Name>Applications</Name>' | 252 echo ' <Name>Applications</Name>' |
| 289 | 253 |
| 290 for desktop_file in $directory_files; do | 254 for desktop_file in $directory_files; do |
| 291 basefile=`basename "$desktop_file"` | 255 basefile=`basename "$desktop_file"` |
| 292 basefilename=`echo "$basefile"|cut -d '.' -f 1` | 256 basefilename=`echo "$basefile"|cut -d '.' -f 1` |
| 293 echo "<Menu>" | 257 echo "<Menu>" |
| 294 echo " <Name>$basefilename</Name>" | 258 echo " <Name>$basefilename</Name>" |
| 295 echo " <Directory>$basefile</Directory>" | 259 echo " <Directory>$basefile</Directory>" |
| 296 done | 260 done |
| 297 | 261 |
| 298 echo " <Include>" | 262 echo " <Include>" |
| 299 for desktop_file in $new_desktop_files; do | 263 for desktop_file in $new_desktop_files; do |
| 300 echo " <Filename>$desktop_file</Filename>" | 264 echo " <Filename>$desktop_file</Filename>" |
| 301 done | 265 done |
| 302 echo " </Include>" | 266 echo " </Include>" |
| 303 | 267 |
| 304 for desktop_file in $directory_files; do | 268 for desktop_file in $directory_files; do |
| 305 echo "</Menu>" | 269 echo "</Menu>" |
| 306 done | 270 done |
| 307 | 271 |
| 308 echo '</Menu>' | 272 echo '</Menu>' |
| 309 ) > $tmpfile | 273 ) > $tmpfile |
| 310 chmod $my_chmod $tmpfile | 274 chmod $my_chmod $tmpfile |
| 311 | 275 |
| 312 save_umask=`umask` | 276 save_umask=`umask` |
| 313 umask $my_umask | 277 umask $my_umask |
| 314 | 278 |
| 315 mkdir -p $xdg_dir | 279 mkdir -p $xdg_dir |
| 316 eval 'cp $tmpfile $xdg_dir/$menu_file'$xdg_redirect_output | 280 eval 'cp $tmpfile $xdg_dir/$menu_file'$xdg_redirect_output |
| 317 | 281 |
| 318 umask $save_umask | 282 umask $save_umask |
| 319 rm -f "$tmpfile" | 283 rm -f "$tmpfile" |
| 320 else | 284 else |
| 321 # Uninstall | 285 # Uninstall |
| 322 rm -f $xdg_dir/$menu_file | 286 rm -f $xdg_dir/$menu_file |
| 323 fi | 287 fi |
| 324 | 288 |
| 325 # Uninstall .directory files only if no longer referenced | 289 # Uninstall .directory files only if no longer referenced |
| 326 if [ $action = "uninstall" ] ; then | 290 if [ $action = "uninstall" ] ; then |
| 327 test "${TMPDIR+set}" = set || TMPDIR=/tmp | 291 test "${TMPDIR+set}" = set || TMPDIR=/tmp |
| 328 tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX` | 292 tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX` |
| 329 for menu_file in $xdg_dir/*; do | 293 for menu_file in $xdg_dir/*; do |
| 330 if grep 'generated and managed by @NAME@' $menu_file > /dev/null 2>
/dev/null; then | 294 if grep 'generated and managed by @NAME@' $menu_file > /dev/null 2>
/dev/null; then |
| 331 awk ' | 295 awk ' |
| 332 # List all files within <Directory> tags | 296 # List all files within <Directory> tags |
| 333 BEGIN { | 297 BEGIN { |
| 334 RS="<" | 298 RS="<" |
| 335 } | 299 } |
| 336 /^Directory/ { | 300 /^Directory/ { |
| 337 if (match($0,/>/)) { | 301 if (match($0,/>/)) { |
| 338 print substr($0,RSTART+1) | 302 print substr($0,RSTART+1) |
| 339 } | 303 } |
| 340 }' $menu_file >> $tmpfile | 304 }' $menu_file >> $tmpfile |
| 341 fi | 305 fi |
| 342 done | 306 done |
| 343 orig_directory_files="$directory_files" | 307 orig_directory_files="$directory_files" |
| 344 directory_files= | 308 directory_files= |
| 345 for desktop_file in $orig_directory_files; do | 309 for desktop_file in $orig_directory_files; do |
| 346 if ! grep '^'$desktop_file'$' $tmpfile > /dev/null 2> /dev/null; the
n | 310 if ! grep '^'$desktop_file'$' $tmpfile > /dev/null 2> /dev/null; the
n |
| 347 # No longer in use, safe to delete | 311 # No longer in use, safe to delete |
| 348 directory_files="$directory_files $desktop_file" | 312 directory_files="$directory_files $desktop_file" |
| 349 fi | 313 fi |
| 350 done | 314 done |
| 351 rm -f "$tmpfile" | 315 rm -f "$tmpfile" |
| 352 fi | 316 fi |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 396 exit_failure_syntax "mode argument missing for --mode" | 360 exit_failure_syntax "mode argument missing for --mode" |
| 397 fi | 361 fi |
| 398 case "$1" in | 362 case "$1" in |
| 399 user) | 363 user) |
| 400 mode="user" | 364 mode="user" |
| 401 ;; | 365 ;; |
| 402 | 366 |
| 403 system) | 367 system) |
| 404 mode="system" | 368 mode="system" |
| 405 ;; | 369 ;; |
| 406 | 370 |
| 407 *) | 371 *) |
| 408 exit_failure_syntax "unknown mode '$1'" | 372 exit_failure_syntax "unknown mode '$1'" |
| 409 ;; | 373 ;; |
| 410 esac | 374 esac |
| 411 shift | 375 shift |
| 412 ;; | 376 ;; |
| 413 | 377 |
| 414 --novendor) | 378 --novendor) |
| 415 vendor=false | 379 vendor=false |
| 416 ;; | 380 ;; |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 509 xdg_system_dirs="$XDG_DATA_DIRS" | 473 xdg_system_dirs="$XDG_DATA_DIRS" |
| 510 [ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/ | 474 [ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/ |
| 511 xdg_global_dir= | 475 xdg_global_dir= |
| 512 for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do | 476 for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do |
| 513 if [ -w $x/$xdg_dir_name ] ; then | 477 if [ -w $x/$xdg_dir_name ] ; then |
| 514 xdg_global_dir="$x/$xdg_dir_name" | 478 xdg_global_dir="$x/$xdg_dir_name" |
| 515 break | 479 break |
| 516 fi | 480 fi |
| 517 done | 481 done |
| 518 | 482 |
| 519 DEBUG 3 "Install locations for *.directory files:" | 483 DEBUG 3 "Install locations for *.directory files:" |
| 520 DEBUG 3 "xdg_user_dir: $xdg_user_dir" | 484 DEBUG 3 "xdg_user_dir: $xdg_user_dir" |
| 521 DEBUG 3 "xdg_global_dir: $xdg_global_dir" | 485 DEBUG 3 "xdg_global_dir: $xdg_global_dir" |
| 522 DEBUG 3 "kde_user_dir: $kde_user_dir" | 486 DEBUG 3 "kde_user_dir: $kde_user_dir" |
| 523 DEBUG 3 "kde_global_dir: $kde_global_dir" | 487 DEBUG 3 "kde_global_dir: $kde_global_dir" |
| 524 DEBUG 3 "gnome_user_dir: $gnome_user_dir" | 488 DEBUG 3 "gnome_user_dir: $gnome_user_dir" |
| 525 DEBUG 3 "gnome_global_dir: $gnome_global_dir" | 489 DEBUG 3 "gnome_global_dir: $gnome_global_dir" |
| 526 | 490 |
| 527 if [ x"$mode" = x"user" ] ; then | 491 if [ x"$mode" = x"user" ] ; then |
| 528 xdg_dir="$xdg_user_dir" | 492 xdg_dir="$xdg_user_dir" |
| 529 kde_dir="$kde_user_dir" | 493 kde_dir="$kde_user_dir" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 576 xdg_system_dirs="$XDG_DATA_DIRS" | 540 xdg_system_dirs="$XDG_DATA_DIRS" |
| 577 [ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/ | 541 [ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/ |
| 578 xdg_global_dir= | 542 xdg_global_dir= |
| 579 for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do | 543 for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do |
| 580 if [ -w $x/$xdg_dir_name ] ; then | 544 if [ -w $x/$xdg_dir_name ] ; then |
| 581 xdg_global_dir="$x/$xdg_dir_name" | 545 xdg_global_dir="$x/$xdg_dir_name" |
| 582 break | 546 break |
| 583 fi | 547 fi |
| 584 done | 548 done |
| 585 | 549 |
| 586 kde_user_dir="$HOME/.kde/share/applnk" | 550 kde_user_dir=`kde${KDE_SESSION_VERSION}-config --path apps 2> /dev/null | cut -d
':' -f 1` |
| 587 kde_global_dir="/usr/share/applnk" | 551 kde_global_dir=`kde${KDE_SESSION_VERSION}-config --path apps 2> /dev/null | cut
-d ':' -f 2` |
| 588 [ -w $kde_global_dir ] || kde_global_dir= | 552 [ -w $kde_global_dir ] || kde_global_dir= |
| 589 | 553 |
| 590 gnome_user_dir="$HOME/.gnome/apps" | 554 gnome_user_dir="$HOME/.gnome/apps" |
| 591 gnome_global_dir="/usr/share/gnome/apps" | 555 gnome_global_dir="/usr/share/gnome/apps" |
| 592 [ -w $gnome_global_dir ] || gnome_global_dir= | 556 [ -w $gnome_global_dir ] || gnome_global_dir= |
| 593 | 557 |
| 594 [ -f /etc/mandriva-release ] && need_mandriva_fix=true | 558 DEBUG 3 "Install locations for *.desktop files:" |
| 595 [ -n "$need_mandriva_fix" ] && DEBUG 1 "Fixing up .desktop categories (Mandriva
work around)" | |
| 596 | |
| 597 DEBUG 3 "Install locations for *.desktop files:" | |
| 598 DEBUG 3 "xdg_user_dir: $xdg_user_dir" | 559 DEBUG 3 "xdg_user_dir: $xdg_user_dir" |
| 599 DEBUG 3 "xdg_global_dir: $xdg_global_dir" | 560 DEBUG 3 "xdg_global_dir: $xdg_global_dir" |
| 600 DEBUG 3 "kde_user_dir: $kde_user_dir" | 561 DEBUG 3 "kde_user_dir: $kde_user_dir" |
| 601 DEBUG 3 "kde_global_dir: $kde_global_dir" | 562 DEBUG 3 "kde_global_dir: $kde_global_dir" |
| 602 DEBUG 3 "gnome_user_dir: $gnome_user_dir" | 563 DEBUG 3 "gnome_user_dir: $gnome_user_dir" |
| 603 DEBUG 3 "gnome_global_dir: $gnome_global_dir" | 564 DEBUG 3 "gnome_global_dir: $gnome_global_dir" |
| 604 | 565 |
| 605 if [ x"$mode" = x"user" ] ; then | 566 if [ x"$mode" = x"user" ] ; then |
| 606 xdg_dir="$xdg_user_dir" | 567 xdg_dir="$xdg_user_dir" |
| 607 kde_dir="$kde_user_dir" | 568 kde_dir="$kde_user_dir" |
| (...skipping 21 matching lines...) Expand all Loading... |
| 629 case $action in | 590 case $action in |
| 630 install) | 591 install) |
| 631 save_umask=`umask` | 592 save_umask=`umask` |
| 632 umask $my_umask | 593 umask $my_umask |
| 633 | 594 |
| 634 for x in $xdg_dir $kde_dir $gnome_dir ; do | 595 for x in $xdg_dir $kde_dir $gnome_dir ; do |
| 635 mkdir -p $x | 596 mkdir -p $x |
| 636 eval 'cp $desktop_file $x/$basefile'$xdg_redirect_output | 597 eval 'cp $desktop_file $x/$basefile'$xdg_redirect_output |
| 637 done | 598 done |
| 638 | 599 |
| 639 if [ -n "$need_mandriva_fix" ] ; then | |
| 640 fixup_mandriva_categories $xdg_dir/$basefile | |
| 641 fi | |
| 642 | |
| 643 if [ -f $kde_dir/$basefile ] ; then | 600 if [ -f $kde_dir/$basefile ] ; then |
| 644 echo "OnlyShowIn=Old;" >> $kde_dir/$basefile | 601 echo "OnlyShowIn=Old;" >> $kde_dir/$basefile |
| 645 fi | 602 fi |
| 646 | 603 |
| 647 if [ -f $gnome_dir/$basefile ] ; then | 604 if [ -f $gnome_dir/$basefile ] ; then |
| 648 echo "OnlyShowIn=Old;" >> $gnome_dir/$basefile | 605 echo "OnlyShowIn=Old;" >> $gnome_dir/$basefile |
| 649 fi | 606 fi |
| 650 | 607 |
| 651 make_lazy_default "$xdg_dir" "$basefile" | 608 make_lazy_default "$xdg_dir" "$basefile" |
| 652 | 609 |
| 653 umask $save_umask | 610 umask $save_umask |
| 654 ;; | 611 ;; |
| 655 | 612 |
| 656 uninstall) | 613 uninstall) |
| 657 for x in $xdg_dir $kde_dir $gnome_dir ; do | 614 for x in $xdg_dir $kde_dir $gnome_dir ; do |
| 658 rm -f $x/$basefile | 615 rm -f $x/$basefile |
| 659 done | 616 done |
| 660 | 617 |
| 661 ;; | 618 ;; |
| 662 esac | 619 esac |
| 663 done | 620 done |
| 664 | 621 |
| 665 if [ x"$update" = x"yes" ] ; then | 622 if [ x"$update" = x"yes" ] ; then |
| 666 update_desktop_database | 623 update_desktop_database |
| 667 fi | 624 fi |
| 668 | 625 |
| 669 exit_success | 626 exit_success |
| OLD | NEW |