OLD | NEW |
1 #!/bin/sh | 1 #!/bin/sh |
2 #--------------------------------------------- | 2 #--------------------------------------------- |
3 # xdg-email | 3 # xdg-email |
4 # | 4 # |
5 # Utility script to open the users favorite email program, using the | 5 # Utility script to open the users favorite email program, using the |
6 # RFC 2368 mailto: URI spec | 6 # RFC 2368 mailto: URI spec |
7 # | 7 # |
8 # Refer to the usage() function below for usage. | 8 # Refer to the usage() function below for usage. |
9 # | 9 # |
| 10 # Copyright 2009-2010, Fathi Boudra <fabo@freedesktop.org> |
| 11 # Copyright 2009-2010, Rex Dieter <rdieter@fedoraproject.org> |
10 # Copyright 2006, Kevin Krammer <kevin.krammer@gmx.at> | 12 # Copyright 2006, Kevin Krammer <kevin.krammer@gmx.at> |
11 # Copyright 2006, Jeremy White <jwhite@codeweavers.com> | 13 # Copyright 2006, Jeremy White <jwhite@codeweavers.com> |
12 # | 14 # |
13 # LICENSE: | 15 # LICENSE: |
14 # | 16 # |
15 #--------------------------------------------- | 17 #--------------------------------------------- |
16 | 18 |
17 manualpage() | 19 manualpage() |
18 { | 20 { |
19 cat << _MANUALPAGE | 21 cat << _MANUALPAGE |
(...skipping 19 matching lines...) Expand all Loading... |
39 else | 41 else |
40 MAILTO=$(echo "$MAILTO" | sed 's/^/to=/' | sed 's/?/\&/') | 42 MAILTO=$(echo "$MAILTO" | sed 's/^/to=/' | sed 's/?/\&/') |
41 fi | 43 fi |
42 | 44 |
43 MAILTO=$(echo "$MAILTO" | sed 's/&/\n/g') | 45 MAILTO=$(echo "$MAILTO" | sed 's/&/\n/g') |
44 TO=$(echo "$MAILTO" | grep '^to=' | sed 's/^to=//' | awk '{ printf "%s,",$0
}') | 46 TO=$(echo "$MAILTO" | grep '^to=' | sed 's/^to=//' | awk '{ printf "%s,",$0
}') |
45 CC=$(echo "$MAILTO" | grep '^cc=' | sed 's/^cc=//' | awk '{ printf "%s,",$0
}') | 47 CC=$(echo "$MAILTO" | grep '^cc=' | sed 's/^cc=//' | awk '{ printf "%s,",$0
}') |
46 BCC=$(echo "$MAILTO" | grep '^bcc=' | sed 's/^bcc=//' | awk '{ printf "%s,",
$0 }') | 48 BCC=$(echo "$MAILTO" | grep '^bcc=' | sed 's/^bcc=//' | awk '{ printf "%s,",
$0 }') |
47 SUBJECT=$(echo "$MAILTO" | grep '^subject=' | tail -n 1) | 49 SUBJECT=$(echo "$MAILTO" | grep '^subject=' | tail -n 1) |
48 BODY=$(echo "$MAILTO" | grep '^body=' | tail -n 1) | 50 BODY=$(echo "$MAILTO" | grep '^body=' | tail -n 1) |
49 ATTACH=$(echo "$MAILTO" | sed 's/^attach=/\n\nfile:\/\//g' | awk '/^file:/ {
printf "%s,",$0 }') | 51 ATTACH=$(echo "$MAILTO" | sed 's/^attach=/\n\nfile:\/\//g' | awk '/^file:/ {
printf "%s,",$0 }' | sed 's/,$//') |
50 | 52 |
51 if [ -z "$TO" ] ; then | 53 if [ -z "$TO" ] ; then |
52 NEWMAILTO= | 54 NEWMAILTO= |
53 else | 55 else |
54 NEWMAILTO="to='$TO'" | 56 NEWMAILTO="to='$TO'" |
55 fi | 57 fi |
56 if [ -n "$CC" ] ; then | 58 if [ -n "$CC" ] ; then |
57 NEWMAILTO="${NEWMAILTO},cc='$CC'" | 59 NEWMAILTO="${NEWMAILTO},cc='$CC'" |
58 fi | 60 fi |
59 if [ -n "$BCC" ] ; then | 61 if [ -n "$BCC" ] ; then |
(...skipping 15 matching lines...) Expand all Loading... |
75 "$THUNDERBIRD" -compose "$NEWMAILTO" | 77 "$THUNDERBIRD" -compose "$NEWMAILTO" |
76 if [ $? -eq 0 ]; then | 78 if [ $? -eq 0 ]; then |
77 exit_success | 79 exit_success |
78 else | 80 else |
79 exit_failure_operation_failed | 81 exit_failure_operation_failed |
80 fi | 82 fi |
81 } | 83 } |
82 | 84 |
83 open_kde() | 85 open_kde() |
84 { | 86 { |
85 local client | 87 local client kde_email_profile_name |
86 client=`kreadconfig --file emaildefaults --group PROFILE_Default --key Email
Client | cut -d ' ' -f 1` | 88 kde_email_profile_name=`kreadconfig --file emaildefaults --group Defaults --
key Profile` |
| 89 client=`kreadconfig --file emaildefaults --group PROFILE_"$kde_email_profile
_name" --key EmailClient | cut -d ' ' -f 1` |
87 echo $client | grep thunderbird > /dev/null 2>&1 | 90 echo $client | grep thunderbird > /dev/null 2>&1 |
88 if [ $? -eq 0 ] ; then | 91 if [ $? -eq 0 ] ; then |
89 run_thunderbird "$client" "$1" | 92 run_thunderbird "$client" "$1" |
90 fi | 93 fi |
91 | 94 |
92 if [ -f /etc/SuSE-release ] ; then | 95 if [ -f /etc/SuSE-release ] ; then |
93 # Workaround for SUSE 10.0 | 96 # Workaround for SUSE 10.0 |
94 [ -z "$client" ] && client="kmail" | 97 [ -z "$client" ] && client="kmail" |
95 if ! which "$client" > /dev/null 2> /dev/null; then | 98 if ! which "$client" > /dev/null 2> /dev/null; then |
96 DEBUG 3 "KDE has $client configured as email client which isn't inst
alled" | 99 DEBUG 3 "KDE has $client configured as email client which isn't inst
alled" |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 linenr = 1 | 188 linenr = 1 |
186 } | 189 } |
187 { | 190 { |
188 if ( linenr++ != 1 ) { | 191 if ( linenr++ != 1 ) { |
189 e = e "%0D%0A" | 192 e = e "%0D%0A" |
190 } | 193 } |
191 for ( i=1; i<=length ($0); ++i ) { | 194 for ( i=1; i<=length ($0); ++i ) { |
192 c = substr ($0, i, 1) | 195 c = substr ($0, i, 1) |
193 if ( ord [c] > 127 ) { | 196 if ( ord [c] > 127 ) { |
194 e = e "%" sprintf("%02X", ord [c]) | 197 e = e "%" sprintf("%02X", ord [c]) |
195 } else if ( c ~ /[@a-zA-Z0-9.-\\/]/ ) { | 198 } else if ( c ~ /[@a-zA-Z0-9.-\\\/]/ ) { |
196 e = e c | 199 e = e c |
197 } else { | 200 } else { |
198 e = e "%" sprintf("%02X", ord [c]) | 201 e = e "%" sprintf("%02X", ord [c]) |
199 } | 202 } |
200 } | 203 } |
201 } | 204 } |
202 END { | 205 END { |
203 print e | 206 print e |
204 } | 207 } |
205 ') | 208 ') |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
354 ;; | 357 ;; |
355 | 358 |
356 gnome) | 359 gnome) |
357 open_gnome "${mailto}" | 360 open_gnome "${mailto}" |
358 ;; | 361 ;; |
359 | 362 |
360 xfce) | 363 xfce) |
361 open_xfce "${mailto}" | 364 open_xfce "${mailto}" |
362 ;; | 365 ;; |
363 | 366 |
364 generic) | 367 generic|lxde) |
365 open_generic "${mailto}" | 368 open_generic "${mailto}" |
366 ;; | 369 ;; |
367 | 370 |
368 *) | 371 *) |
369 exit_failure_operation_impossible "no method available for opening '${mailto
}'" | 372 exit_failure_operation_impossible "no method available for opening '${mailto
}'" |
370 ;; | 373 ;; |
371 esac | 374 esac |
OLD | NEW |