Imported from ../bash-2.03.tar.gz.
[platform/upstream/bash.git] / examples / misc / aliasconv.sh
1 #! /bin/bash
2 #
3 # aliasconv.sh - convert csh aliases to bash aliases and functions
4 #
5 # usage: aliasconv.sh
6 #
7 # Chet Ramey
8 # chet@po.cwru.edu
9 #
10 trap 'rm -f /tmp/cb$$.?' 0 1 2 3 6 15
11
12 T='     '
13
14 cat << \EOF >/tmp/cb$$.1
15 mkalias ()
16 {
17         if [ "x$2" = "x" ]; then
18                 echo alias ${1}="''"
19         elif echo "$2" | egrep -s '(\!|#)' >/dev/null 2>&1; then
20                 comm=`echo $2 | sed  's/\\!\*/"$\@"/g
21                                       s/\\!:\([1-9]\)/"$\1"/g
22                                       s/#/\#/g'`
23                 echo $1 \(\) "{" command "$comm"  "; }"
24         else
25                 echo alias ${1}=\'`echo "${2}" | sed "s:':'\\\\\\\\'':"`\'
26         fi
27 }
28 EOF
29
30 # the first thing we want to do is to protect single quotes in the alias,
31 # since they whole thing is going to be surrounded by single quotes when
32 # passed to mkalias
33
34 sed -e "s:':\\'\\\'\\':" -e "s/^\([a-zA-Z0-9_-]*\)$T\(.*\)$/mkalias \1 '\2'/" >>/tmp/cb$$.1
35
36 sh /tmp/cb$$.1 | sed -e 's/\$cwd/\$PWD/g' \
37                      -e 's/\$term/\$TERM/g' \
38                      -e 's/\$home/\$HOME/g' \
39                      -e 's/\$user/\$USER/g' \
40                      -e 's/\$prompt/\$PS1/g'
41
42 exit 0