| 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 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 if (match($0,/>/)) { | 243 if (match($0,/>/)) { |
| 244 print substr($0,RSTART+1) | 244 print substr($0,RSTART+1) |
| 245 } | 245 } |
| 246 }' $orig_menu_file > $tmpfile | 246 }' $orig_menu_file > $tmpfile |
| 247 fi | 247 fi |
| 248 | 248 |
| 249 orig_desktop_files=`cat $tmpfile` | 249 orig_desktop_files=`cat $tmpfile` |
| 250 new_desktop_files= | 250 new_desktop_files= |
| 251 if [ $action = "install" ] ; then | 251 if [ $action = "install" ] ; then |
| 252 for desktop_file in $desktop_files; do | 252 for desktop_file in $desktop_files; do |
| 253 basefile=`basename $desktop_file` | 253 basefile=`basename "$desktop_file"` |
| 254 if ! grep '^'$basefile'$' $tmpfile > /dev/null 2> /dev/null ; then | 254 if ! grep '^'$basefile'$' $tmpfile > /dev/null 2> /dev/null ; then |
| 255 # Append | 255 # Append |
| 256 echo "$basefile" >> $tmpfile | 256 echo "$basefile" >> $tmpfile |
| 257 fi | 257 fi |
| 258 done | 258 done |
| 259 new_desktop_files=`cat $tmpfile` | 259 new_desktop_files=`cat $tmpfile` |
| 260 fi | 260 fi |
| 261 if [ $action = "uninstall" ] ; then | 261 if [ $action = "uninstall" ] ; then |
| 262 echo > $tmpfile | 262 echo > $tmpfile |
| 263 for desktop_file in $desktop_files; do | 263 for desktop_file in $desktop_files; do |
| (...skipping 17 matching lines...) Expand all Loading... |
| 281 test "${TMPDIR+set}" = set || TMPDIR=/tmp | 281 test "${TMPDIR+set}" = set || TMPDIR=/tmp |
| 282 tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX` | 282 tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX` |
| 283 ( | 283 ( |
| 284 echo '<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"' | 284 echo '<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"' |
| 285 echo ' "http://www.freedesktop.org/standards/menu-spec/menu-1.0.d
td">' | 285 echo ' "http://www.freedesktop.org/standards/menu-spec/menu-1.0.d
td">' |
| 286 echo '<!-- Do not edit manually - generated and managed by @NAME@ --
>' | 286 echo '<!-- Do not edit manually - generated and managed by @NAME@ --
>' |
| 287 echo '<Menu>' | 287 echo '<Menu>' |
| 288 echo ' <Name>Applications</Name>' | 288 echo ' <Name>Applications</Name>' |
| 289 | 289 |
| 290 for desktop_file in $directory_files; do | 290 for desktop_file in $directory_files; do |
| 291 basefile=`basename $desktop_file` | 291 basefile=`basename "$desktop_file"` |
| 292 basefilename=`echo "$basefile"|cut -d '.' -f 1` | 292 basefilename=`echo "$basefile"|cut -d '.' -f 1` |
| 293 echo "<Menu>" | 293 echo "<Menu>" |
| 294 echo " <Name>$basefilename</Name>" | 294 echo " <Name>$basefilename</Name>" |
| 295 echo " <Directory>$basefile</Directory>" | 295 echo " <Directory>$basefile</Directory>" |
| 296 done | 296 done |
| 297 | 297 |
| 298 echo " <Include>" | 298 echo " <Include>" |
| 299 for desktop_file in $new_desktop_files; do | 299 for desktop_file in $new_desktop_files; do |
| 300 echo " <Filename>$desktop_file</Filename>" | 300 echo " <Filename>$desktop_file</Filename>" |
| 301 done | 301 done |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 470 if [ -z "$desktop_files" ] ; then | 470 if [ -z "$desktop_files" ] ; then |
| 471 exit_failure_syntax "desktop-file argument missing" | 471 exit_failure_syntax "desktop-file argument missing" |
| 472 fi | 472 fi |
| 473 | 473 |
| 474 menu_name= | 474 menu_name= |
| 475 for desktop_file in $directory_files; do | 475 for desktop_file in $directory_files; do |
| 476 if [ "$vendor" = "true" -a "$action" = "install" ] ; then | 476 if [ "$vendor" = "true" -a "$action" = "install" ] ; then |
| 477 check_vendor_prefix "$desktop_file" | 477 check_vendor_prefix "$desktop_file" |
| 478 fi | 478 fi |
| 479 | 479 |
| 480 basefilename=`basename "$desktop_file"|cut -d '.' -f 1` | 480 basefilename=`basename "$desktop_file" | cut -d '.' -f 1` |
| 481 if [ -z "$menu_name" ] ; then | 481 if [ -z "$menu_name" ] ; then |
| 482 menu_name="$basefilename" | 482 menu_name="$basefilename" |
| 483 else | 483 else |
| 484 menu_name="$menu_name-$basefilename" | 484 menu_name="$menu_name-$basefilename" |
| 485 fi | 485 fi |
| 486 done | 486 done |
| 487 | 487 |
| 488 if [ -n "$menu_name" ] ; then | 488 if [ -n "$menu_name" ] ; then |
| 489 if [ x"$mode" = x"user" ] ; then | 489 if [ x"$mode" = x"user" ] ; then |
| 490 update_submenu "user-$menu_name.menu" | 490 update_submenu "user-$menu_name.menu" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 533 xdg_dir="$xdg_global_dir" | 533 xdg_dir="$xdg_global_dir" |
| 534 kde_dir="$kde_global_dir" | 534 kde_dir="$kde_global_dir" |
| 535 gnome_dir="$gnome_global_dir" | 535 gnome_dir="$gnome_global_dir" |
| 536 my_umask=022 | 536 my_umask=022 |
| 537 if [ -z "${xdg_dir}${kde_dir}${gnome_dir}" ] ; then | 537 if [ -z "${xdg_dir}${kde_dir}${gnome_dir}" ] ; then |
| 538 exit_failure_operation_impossible "No writable system menu directory fou
nd." | 538 exit_failure_operation_impossible "No writable system menu directory fou
nd." |
| 539 fi | 539 fi |
| 540 fi | 540 fi |
| 541 | 541 |
| 542 for desktop_file in $directory_files; do | 542 for desktop_file in $directory_files; do |
| 543 basefile=`basename $desktop_file` | 543 basefile=`basename "$desktop_file"` |
| 544 | 544 |
| 545 DEBUG 1 "$action $desktop_file in $xdg_dir $kde_dir $gnome_dir" | 545 DEBUG 1 "$action $desktop_file in $xdg_dir $kde_dir $gnome_dir" |
| 546 | 546 |
| 547 case $action in | 547 case $action in |
| 548 install) | 548 install) |
| 549 save_umask=`umask` | 549 save_umask=`umask` |
| 550 umask $my_umask | 550 umask $my_umask |
| 551 | 551 |
| 552 for x in $xdg_dir $kde_dir $gnome_dir ; do | 552 for x in $xdg_dir $kde_dir $gnome_dir ; do |
| 553 mkdir -p $x | 553 mkdir -p $x |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 615 if [ -z "${xdg_dir}${kde_dir}${gnome_dir}" ] ; then | 615 if [ -z "${xdg_dir}${kde_dir}${gnome_dir}" ] ; then |
| 616 exit_failure_operation_impossible "No writable system menu directory fou
nd." | 616 exit_failure_operation_impossible "No writable system menu directory fou
nd." |
| 617 fi | 617 fi |
| 618 fi | 618 fi |
| 619 | 619 |
| 620 for desktop_file in $desktop_files; do | 620 for desktop_file in $desktop_files; do |
| 621 if [ "$vendor" = "true" -a "$action" = "install" ] ; then | 621 if [ "$vendor" = "true" -a "$action" = "install" ] ; then |
| 622 check_vendor_prefix "$desktop_file" | 622 check_vendor_prefix "$desktop_file" |
| 623 fi | 623 fi |
| 624 | 624 |
| 625 basefile=`basename $desktop_file` | 625 basefile=`basename "$desktop_file"` |
| 626 | 626 |
| 627 DEBUG 1 "$action $desktop_file in $xdg_dir $kde_dir $gnome_dir" | 627 DEBUG 1 "$action $desktop_file in $xdg_dir $kde_dir $gnome_dir" |
| 628 | 628 |
| 629 case $action in | 629 case $action in |
| 630 install) | 630 install) |
| 631 save_umask=`umask` | 631 save_umask=`umask` |
| 632 umask $my_umask | 632 umask $my_umask |
| 633 | 633 |
| 634 for x in $xdg_dir $kde_dir $gnome_dir ; do | 634 for x in $xdg_dir $kde_dir $gnome_dir ; do |
| 635 mkdir -p $x | 635 mkdir -p $x |
| (...skipping 24 matching lines...) Expand all Loading... |
| 660 | 660 |
| 661 ;; | 661 ;; |
| 662 esac | 662 esac |
| 663 done | 663 done |
| 664 | 664 |
| 665 if [ x"$update" = x"yes" ] ; then | 665 if [ x"$update" = x"yes" ] ; then |
| 666 update_desktop_database | 666 update_desktop_database |
| 667 fi | 667 fi |
| 668 | 668 |
| 669 exit_success | 669 exit_success |
| OLD | NEW |