Commit | Line | Data |
---|---|---|
d05bb22f S |
1 | # Copyright (c) 2010, 2012, 2013, 2014 |
2 | # Thorsten Glaser <tg@mirbsd.org> | |
3 | # This file is provided under the same terms as mksh. | |
4 | #- | |
5 | # Minimal /system/etc/mkshrc for Android | |
6 | # | |
7 | # Support: https://launchpad.net/mksh | |
8 | ||
9 | : ${TERM:=vt100} ${HOME:=/data} ${MKSH:=/system/bin/sh} ${HOSTNAME:=$(getprop ro.product.device)} | |
10 | : ${SHELL:=$MKSH} ${USER:=$(typeset x=$(id); x=${x#*\(}; print -r -- ${x%%\)*})} ${HOSTNAME:=android} | |
11 | if (( USER_ID )); then PS1='$'; else PS1='#'; fi | |
12 | PS4='[$EPOCHREALTIME] '; PS1='${| | |
13 | local e=$? | |
14 | ||
15 | (( e )) && REPLY+="$e|" | |
16 | ||
17 | return $e | |
18 | }$USER@$HOSTNAME:${PWD:-?} '"$PS1 " | |
19 | export HOME HOSTNAME MKSH SHELL TERM USER | |
20 | alias l='ls' | |
21 | alias la='l -a' | |
22 | alias ll='l -l' | |
23 | alias lo='l -a -l' | |
24 | ||
25 | function hd { | |
26 | local -Uui16 -Z11 pos=0 | |
27 | local -Uui16 -Z5 hv=2147483647 | |
28 | local dasc line i | |
29 | ||
30 | cat "$@" | { set +U; if read -arN -1 line; then | |
31 | typeset -i1 line | |
32 | i=0 | |
33 | while (( i < ${#line[*]} )); do | |
34 | hv=${line[i++]} | |
35 | if (( (pos & 15) == 0 )); then | |
36 | (( pos )) && print -r -- "$dasc|" | |
37 | print -n "${pos#16#} " | |
38 | dasc=' |' | |
39 | fi | |
40 | print -n "${hv#16#} " | |
41 | if (( (hv < 32) || (hv > 126) )); then | |
42 | dasc+=. | |
43 | else | |
44 | dasc+=${line[i-1]#1#} | |
45 | fi | |
46 | (( (pos++ & 15) == 7 )) && print -n -- '- ' | |
47 | done | |
48 | while (( pos & 15 )); do | |
49 | print -n ' ' | |
50 | (( (pos++ & 15) == 7 )) && print -n -- '- ' | |
51 | done | |
52 | (( hv == 2147483647 )) || print -r -- "$dasc|" | |
53 | fi; } | |
54 | } | |
55 | ||
56 | function more { | |
57 | ( | |
58 | set +m | |
59 | cat "$@" |& | |
60 | trap "rv=\$?; kill $! >/dev/null 2>&1; exit \$rv" EXIT | |
61 | while IFS= read -pr line; do | |
62 | llen=${%line} | |
63 | (( llen == -1 )) && llen=${#line} | |
64 | (( llen = llen ? (llen + COLUMNS - 1) / COLUMNS : 1 )) | |
65 | if (( (curlin += llen) >= LINES )); then | |
66 | print -n -- '\033[7m--more--\033[0m' | |
67 | read -u1 || exit $? | |
68 | [[ $REPLY = [Qq]* ]] && exit 0 | |
69 | curlin=$llen | |
70 | fi | |
71 | print -r -- "$line" | |
72 | done | |
73 | ) | |
74 | } | |
75 | ||
76 | function setenv { | |
77 | eval export "\"$1\""'="$2"' | |
78 | } | |
79 | ||
80 | for p in ~/.bin; do | |
81 | [[ -d $p/. ]] || continue | |
82 | [[ :$PATH: = *:$p:* ]] || PATH=$p:$PATH | |
83 | done | |
84 | ||
85 | unset p | |
86 | ||
87 | : place customisations above this line |