equal
deleted
inserted
replaced
1 # |
1 # |
2 # $Id$ |
2 # $Id$ |
3 # |
3 # |
4 # patch-scripts.bash - relocate interpreter paths of executable scripts. |
4 # patch-scripts.bash - relocate interpreter paths of executable scripts and |
|
5 # insert AUTO_BASH/AUTO_PERL values |
5 # |
6 # |
6 |
7 |
7 ## find binaries |
8 ## find binaries |
8 |
9 |
9 function findbin() |
10 function findbin() |
10 { |
11 { |
11 local DEFAULT="$1" |
12 local BASE="$1" |
12 local BASE=$(basename "$DEFAULT") |
|
13 local BINARY="" |
13 local BINARY="" |
14 |
14 |
15 BINARY=$(type -path "$BASE") |
15 BINARY=$(type -path "$BASE") |
16 |
16 |
17 if [ -n "$BINARY" ]; then |
17 if [ -n "$BINARY" ]; then |
18 echo "using $BINARY" >&2 |
18 echo "found $BINARY" >&2 |
19 echo "$BINARY" |
19 echo "$BINARY" |
20 return |
|
21 elif [ -f "$DEFAULT" ]; then |
|
22 echo "using $DEFAULT" >&2 |
|
23 echo "$DEFAULT" |
|
24 return |
20 return |
25 else |
21 else |
26 echo "ERROR: $BASE not found!" >&2 |
22 echo "ERROR: $BASE not found!" >&2 |
27 echo "$DEFAULT" |
23 echo "$DEFAULT" |
28 return |
24 return |
30 } |
26 } |
31 |
27 |
32 |
28 |
33 ## main |
29 ## main |
34 |
30 |
35 BASH=$(findbin /bin/bash) |
31 [ -z "$BASH_PATH" ] && BASH_PATH=$(findbin bash) |
36 PERL=$(findbin /usr/bin/perl) |
32 [ -z "$PERL_PATH" ] && PERL_PATH=$(findbin perl) |
|
33 [ -z "$AUTO_BASH" ] && AUTO_BASH="$BASH_PATH" |
|
34 [ -z "$AUTO_PERL" ] && AUTO_PERL="$PERL_PATH" |
37 |
35 |
38 for FILE in $(find . -type f -print) |
36 for FILE in $(find . -type f -print) |
39 do |
37 do |
40 if [ -x "$FILE" ]; then |
38 if [ -x "$FILE" ]; then |
41 sed -e "s:^#!.*/bash:#!$BASH:" -e "s:^#!.*/perl:#!$PERL:" \ |
39 sed -e "s:^#!.*/bash:#!$BASH_PATH:" -e "s:^#!.*/perl:#!$PERL_PATH:" \ |
42 -e "s:^AUTO_BASH=.*bash:AUTO_BASH=$BASH:" \ |
40 -e "s:^AUTO_BASH=.*bash:AUTO_BASH=$AUTO_BASH:" \ |
43 -e "s:^AUTO_PERL=.*perl:AUTO_PERL=$PERL:" $FILE >$FILE~~ |
41 -e "s:^AUTO_PERL=.*perl:AUTO_PERL=$AUTO_PERL:" $FILE >$FILE~~ |
44 if cmp -s $FILE $FILE~~; then |
42 if cmp -s $FILE $FILE~~; then |
45 rm $FILE~~ |
43 rm $FILE~~ |
46 else |
44 else |
47 rm -f $FILE |
45 rm -f $FILE |
48 mv $FILE~~ $FILE |
46 mv $FILE~~ $FILE |