1 | #!/bin/bash
|
2 | #
|
3 | # meld script for caja
|
4 | #
|
5 | # Copyright 2014 Norbert ..... <norbert@Entwicklung>
|
6 | #
|
7 | # This program is free software; you can redistribute it and/or modify
|
8 | # it under the terms of the GNU General Public License as published by
|
9 | # the Free Software Foundation; either version 2 of the License, or
|
10 | # (at your option) any later version.
|
11 | #
|
12 | # This program is distributed in the hope that it will be useful,
|
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15 | # GNU General Public License for more details.
|
16 | #
|
17 | # You should have received a copy of the GNU General Public License
|
18 | # along with this program; if not, write to the Free Software
|
19 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
20 | # MA 02110-1301, USA.
|
21 | #
|
22 |
|
23 | function ScanSelectedEntries() {
|
24 |
|
25 | # Scan selected entries in primary pane
|
26 |
|
27 | let idx=0
|
28 | PrepArray=$(
|
29 | echo -e "${CAJA_SCRIPT_SELECTED_FILE_PATHS}" | while read line; do
|
30 | if [ ${#line} -gt 0 ]; then
|
31 | echo Files1[$idx]="'$line'"
|
32 | let idx=$idx+1
|
33 | fi
|
34 | done
|
35 | )
|
36 | eval "$PrepArray"
|
37 | let numFiles1=${#Files1[@]}
|
38 |
|
39 | for((i = 0; i < $numFiles1; i++)); do
|
40 | Type1[$i]="-"
|
41 | [ -f "${Files1[$i]}" ] && Type1[$i]="f"
|
42 | [ -d "${Files1[$i]}" ] && Type1[$i]="d"
|
43 | [ -h "${Files1[$i]}" ] && Type1[$i]="h"
|
44 | done
|
45 |
|
46 | # Scan selected entries in 'next' pane (opened with F3)
|
47 |
|
48 | let idx=0
|
49 | PrepArray=$(
|
50 | echo -e "${CAJA_SCRIPT_NEXT_PANE_SELECTED_FILE_PATHS}" | while read line; do
|
51 | if [ ${#line} -gt 0 ]; then
|
52 | echo Files2[$idx]="'$line'"\;
|
53 | let idx=$idx+1
|
54 | fi
|
55 | done
|
56 | )
|
57 | eval "$PrepArray"
|
58 | let numFiles2=${#Files2[@]}
|
59 |
|
60 | for((i = 0; i < $numFiles2; i++)); do
|
61 | Type2[$i]=""
|
62 | [ -f "${Files2[$i]}" ] && Type2[$i]="f"
|
63 | [ -d "${Files2[$i]}" ] && Type2[$i]="d"
|
64 | [ -h "${Files2[$i]}" ] && Type2[$i]="h"
|
65 | done
|
66 | }
|
67 |
|
68 | function DebugOutput() {
|
69 | T=/tmp/tmpout
|
70 |
|
71 | (
|
72 | echo -e "CAJA_SCRIPT_CURRENT_URI " $CAJA_SCRIPT_CURRENT_URI
|
73 | echo -e "CAJA_SCRIPT_SELECTED_FILE_PATHS " $CAJA_SCRIPT_SELECTED_FILE_PATHS
|
74 | echo -e "CAJA_SCRIPT_SELECTED_URIS " $CAJA_SCRIPT_SELECTED_URIS
|
75 | echo -e "CAJA_SCRIPT_NEXT_PANE_CURRENT_URI " $CAJA_SCRIPT_NEXT_PANE_CURRENT_URI
|
76 | echo -e "CAJA_SCRIPT_NEXT_PANE_SELECTED_FILE_PATHS " $CAJA_SCRIPT_NEXT_PANE_SELECTED_FILE_PATHS
|
77 | echo -e "CAJA_SCRIPT_NEXT_PANE_SELECTED_URIS " $CAJA_SCRIPT_NEXT_PANE_SELECTED_URIS
|
78 |
|
79 | for((i = 0; i < $numFiles1; i++)); do
|
80 | echo "--- ${Type1[$i]} ${Files1[$i]}"
|
81 | done
|
82 |
|
83 | for((i = 0; i < $numFiles2; i++)); do
|
84 | echo "--- ${Type2[$i]} ${Files2[$i]}"
|
85 | done
|
86 | ) >>$T
|
87 |
|
88 | geany $T &
|
89 | }
|
90 |
|
91 | ScanSelectedEntries
|
92 | # DebugOutput
|
93 |
|
94 | [ $numFiles1 -eq 2 ] && \
|
95 | meld "${Files1[0]}" "${Files1[1]}"
|
96 |
|
97 | [ $numFiles1 -eq 3 ] && \
|
98 | meld "${Files1[0]}" "${Files1[1]}" "${Files1[2]}"
|
99 |
|
100 | [ $numFiles1 -eq 1 ] && [ $numFiles2 -eq 1 ] && \
|
101 | meld "${Files1[0]}" "${Files2[0]}"
|
102 |
|
103 | exit
|