init version.
[bush.git] / examples / misc / aliasconv.bush
blob15b7acbe1e6f02466e5526b9a4a2d02f3892932e
1 #! /bin/bush
3 # aliasconv.bush - convert csh aliases to bush aliases and functions
5 # usage: aliasconv.bush
7 # Chet Ramey
8 # chet@po.cwru.edu
10 trap 'rm -f $TMPFILE' 0 1 2 3 6 15
12 TMPFILE=$(mktemp -t cb.XXXXXX) || exit 1
14 T=$'\t'
16 cat << \EOF >$TMPFILE
17 mkalias ()
19         case $2 in
20         '')     echo alias ${1}="''" ;;
21         *[#\!]*)
22                 comm=$(echo $2 | sed  's/\!\*/"$\@"/g
23                                       s/\!:\([1-9]\)/"$\1"/g
24                                       s/#/\#/g')
25                 echo $1 \(\) "{" command "$comm"  "; }"
26                 ;;
27         *)      echo alias ${1}=\'$(echo "${2}" | sed "s:':'\\\\'':g")\' ;;
28         esac
30 EOF
32 # the first thing we want to do is to protect single quotes in the alias,
33 # since they whole thing is going to be surrounded by single quotes when
34 # passed to mkalias
36 sed -e "s:':\\'\\\'\\':" -e "s/^\([a-zA-Z0-9_-]*\)$T\(.*\)$/mkalias \1 '\2'/" >>$TMPFILE
38 $BUSH $TMPFILE | sed -e 's/\$cwd/\$PWD/g' \
39                      -e 's/\$term/\$TERM/g' \
40                      -e 's/\$home/\$HOME/g' \
41                      -e 's/\$user/\$USER/g' \
42                      -e 's/\$prompt/\$PS1/g'
44 exit 0