slitaz-tools view tinyutils/file-manager @ rev 813

Current state, features stabilized and open for bugfixes and translations.
author Aleksej Bobylev <al.bobylev@gmail.com>
date Mon Sep 09 03:27:04 2013 +0300 (2013-09-09)
parents 72c2ef5c57e7
children ad69885741f7
line source
1 #!/bin/sh
2 # Launch SliTaz default File manager.
3 #
4 . /etc/slitaz/applications.conf
6 USER_CONFIG="$HOME/.config/slitaz/applications.conf"
7 [ -f $USER_CONFIG ] && . $USER_CONFIG
9 # Check for terminal based File manager
10 local desktop_file terminal_line exec_line exec icon_line icon params param
12 desktop_file=$(find $HOME/.local/share/applications /usr/share/applications \
13 -iname $FILE_MANAGER.desktop | head -n1)
14 echo "desktop_file: «$desktop_file»"
16 if [ "x$desktop_file" != x ]; then
17 terminal_line=$(grep "^Terminal" $desktop_file | head -n1 | cut -d= -f2)
18 exec_line=$(grep "^Exec" $desktop_file | head -n1 | cut -d= -f2)
20 exec=${exec_line%% *}
21 params=${exec_line#* }; [ "x$exec" == "x$params" ] && params=
23 case x$terminal_line in
24 xTrue|xtrue|x1) exec="terminal -e $exec" ;;
25 *) ;;
26 esac
28 echo "terminal_line: «$terminal_line» exec: «$exec» params: «$params»"
30 if [ "x$(echo $params | grep '%i')" != x ]; then
31 # The Icon key expected
32 icon_line=$(grep "^Icon" $desktop_file | head -n1 | cut -d= -f2)
33 if [ "x$icon_line" != x ]; then
34 exec_line=$(echo $exec_line | sed 's|%i|--icon '$icon_line'|')
35 fi
36 fi
37 echo "exec_line: «$exec_line»"
39 for param in $params; do
40 echo "param: «$param»"
41 case x$param in
42 x%F) # A list of files expected
43 echo "F)"
44 echo » $exec $icon $@ ;;
45 x%f) # A single file name expected
46 echo "f)"
47 for param in $@; do
48 echo » $exec $icon $param
49 done ;;
50 x%U) # A list of URLs expected
51 echo "U)"
52 params=
53 for param in $@; do
54 case $param in
55 *://)
56 params="$params $param" ;;
57 *)
58 param="$(realpath $param 2>/dev/null)"
59 if [ "x$param" != x ]; then
60 params="$params file://$param"
61 fi ;;
62 esac
63 done
64 echo » $exec $icon $params
65 ;;
66 x%u) # A single URL expected
67 echo "u)"
68 for param in $@; do
69 case $param in
70 *://)
71 echo » $exec $icon $param ;;
72 *)
73 param="$(realpath $param 2>/dev/null)"
74 if [ "x$param" != x ]; then
75 echo » $exec $icon file://$param
76 fi ;;
77 esac
78 done
79 ;;
80 *) echo unknown ;;
81 esac
82 done
83 [ "x$params" == x ] && echo » $exec
84 [ "x$params" == "x%i" ] && echo » $exec $icon
85 fi
87 #echo $FILE_MANAGER $@ &
89 exit 0