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 |