summaryrefslogtreecommitdiffstats
path: root/warp/filexp
blob: b0d65435e8824dc88883c680b5c896ba37d4bf0c (plain) (blame)
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
#!/bin/sh
: expand filename
case "$1" in
 ~/*|~)
    echo $1 | sed "s|~|${HOME-$LOGDIR}|"
    ;;
 ~*)
    if /bin/test -f /bin/csh; then
	/bin/csh -f -c "glob $1"
	echo ""
    else
	name=`expr x$1 : '..\([^/]*\)'`
	dir=`sed -n -e "/^${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'$'"/\1/" -e p -e q -e '}' </etc/passwd`
	if /bin/test ! -d "$dir"; then
	    me=`basename $0`
	    echo "$me: can't locate home directory for: $name" >&2
	    exit 1
	fi
	case "$1" in
	*/*)
	    echo $dir/`expr x$1 : '..[^/]*/\(.*\)'`
	    ;;
	*)
	    echo $dir
	    ;;
	esac
    fi
    ;;
*)
    echo $1
    ;;
esac