summaryrefslogtreecommitdiff
path: root/examples/misc/aliasconv.sh
blob: 4cbebfb44db2c48f7db263068d9a03b39fd384c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#! /bin/bash
#
# alias-conv.sh - convert csh aliases to bash aliases and functions
#
# usage: alias-conv.sh
#
# Chet Ramey
# chet@po.cwru.edu
#
trap 'rm -f /tmp/cb$$.?' 0 1 2 3 6 15

T='	'

cat << \EOF >/tmp/cb$$.1
mkalias ()
{
	if [ "x$2" = "x" ]; then
		echo alias ${1}="''"
	elif echo "$2" | egrep -s '(\!|#)' >/dev/null 2>&1; then
		comm=`echo $2 | sed  's/\\!\*/"$\@"/g
				      s/\\!:\([1-9]\)/"$\1"/g
			              s/#/\#/g'`
		echo $1 \(\) "{" command "$comm"  "; }"
	else
		echo alias ${1}=\'`echo "${2}" | sed "s:':'\\\\\\\\'':"`\'
	fi
}
EOF

sed "s/^\([a-zA-Z0-9_-]*\)$T\(.*\)$/mkalias \1 '\2'/" >>/tmp/cb$$.1

sh /tmp/cb$$.1 | sed -e 's/\$cwd/\$PWD/g' \
		     -e 's/\$term/\$TERM/g' \
		     -e 's/\$home/\$HOME/g' \
		     -e 's/\$user/\$USER/g' \
		     -e 's/\$prompt/\$PS1/g'

exit 0