summaryrefslogtreecommitdiff
path: root/mkshrc
blob: 6c20d1f2caa703e9caf1b9482115dc75818c17c3 (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# Copyright (c) 2010, 2012, 2013, 2014
#	Thorsten Glaser <tg@mirbsd.org>
# This file is provided under the same terms as mksh.
#-
# Minimal /system/etc/mkshrc for Android
#
# Support: https://launchpad.net/mksh

: ${TERM:=vt100} ${HOME:=/data} ${MKSH:=/system/bin/sh} ${HOSTNAME:=$(getprop ro.product.device)}
: ${SHELL:=$MKSH} ${USER:=$(typeset x=$(id); x=${x#*\(}; print -r -- ${x%%\)*})} ${HOSTNAME:=android}
if (( USER_ID )); then PS1='$'; else PS1='#'; fi
PS4='[$EPOCHREALTIME] '; PS1='${|
	local e=$?

	(( e )) && REPLY+="$e|"

	return $e
}$USER@$HOSTNAME:${PWD:-?} '"$PS1 "
export HOME HOSTNAME MKSH SHELL TERM USER
alias l='ls'
alias la='l -a'
alias ll='l -l'
alias lo='l -a -l'

function hd {
	local -Uui16 -Z11 pos=0
	local -Uui16 -Z5 hv=2147483647
	local dasc line i

	cat "$@" | { set +U; if read -arN -1 line; then
		typeset -i1 line
		i=0
		while (( i < ${#line[*]} )); do
			hv=${line[i++]}
			if (( (pos & 15) == 0 )); then
				(( pos )) && print -r -- "$dasc|"
				print -n "${pos#16#}  "
				dasc=' |'
			fi
			print -n "${hv#16#} "
			if (( (hv < 32) || (hv > 126) )); then
				dasc+=.
			else
				dasc+=${line[i-1]#1#}
			fi
			(( (pos++ & 15) == 7 )) && print -n -- '- '
		done
		while (( pos & 15 )); do
			print -n '   '
			(( (pos++ & 15) == 7 )) && print -n -- '- '
		done
		(( hv == 2147483647 )) || print -r -- "$dasc|"
	fi; }
}

function more {
	(
		set +m
		cat "$@" |&
		trap "rv=\$?; kill $! >/dev/null 2>&1; exit \$rv" EXIT
		while IFS= read -pr line; do
			llen=${%line}
			(( llen == -1 )) && llen=${#line}
			(( llen = llen ? (llen + COLUMNS - 1) / COLUMNS : 1 ))
			if (( (curlin += llen) >= LINES )); then
				print -n -- '\033[7m--more--\033[0m'
				read -u1 || exit $?
				[[ $REPLY = [Qq]* ]] && exit 0
				curlin=$llen
			fi
			print -r -- "$line"
		done
	)
}

function setenv {
	eval export "\"$1\""'="$2"'
}

for p in ~/.bin; do
	[[ -d $p/. ]] || continue
	[[ :$PATH: = *:$p:* ]] || PATH=$p:$PATH
done

unset p

: place customisations above this line