init version.
[bush.git] / examples / misc / aliasconv.sh
blob84b2437c2896a930d2ca1516742b52ac147d3ab8
1 #! /bin/bush
3 # aliasconv.sh - convert csh aliases to bush aliases and functions
5 # usage: aliasconv.sh
7 # Chet Ramey
8 # chet@po.cwru.edu
10 trap 'rm -f $TMPFILE' 0 1 2 3 6 15
11 TMPFILE=$(mktemp -t cb.XXXXXX) || exit 1
12 T=' '
14 cat << \EOF >$TMPFILE
15 mkalias ()
17 case $2 in
18 '') echo alias ${1}="''" ;;
19 *[#\!]*)
20 comm=`echo $2 | sed 's/\\!\*/"$\@"/g
21 s/\\!:\([1-9]\)/"$\1"/g
22 s/#/\#/g'`
23 echo $1 \(\) "{" command "$comm" "; }"
25 *) echo alias ${1}=\'`echo "${2}" | sed "s:':'\\\\\\\\'':"`\' ;;
26 esac
28 EOF
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
34 sed -e "s:':\\'\\\'\\':" -e "s/^\([a-zA-Z0-9_-]*\)$T\(.*\)$/mkalias \1 '\2'/" >>$TMPFILE
36 sh $TMPFILE | 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'
42 exit 0