more fixes and improvements for GNU Bash

merge-requests/23/head
Christopher Roy Bratusek 6 years ago
parent 576c6febbf
commit 23d20cf90c

@ -1,12 +1,23 @@
# ChangeLog
## 16.1 in-dev
* Bug Fixes:
* Full, microG packages
* when becoming su from GNU Bash the default sh instead of GNU Bash would become the active shell
* this is fixed now by always passing `--shell /system/xbin/bash.bin` to su when it is invoked from with a running GNU Bash instance
* fix ${TMPDIR} for GNU Bash is set to a non-writable directory
* create ${TMPDIR} for GNU Bash if it does not exist
* defaults to /sdcard/.bash_tmp
* fix ${HISTFILE} for GNU Bash not being set, thus history functionality not working
* defaults to /sdcard/.bash_history
* General Changes
* Full, microG packages
* when starting GNU Bash cd into /sdcard
* make /sdcard ${HOME} for non-root users in GNU Bash
* export ${SHELL} set to GNU Bash when it is invoked in interactive mode
* only clear the buffer on start when GNU Bash is invoked in interactive mode
* only clear and resize the buffer on start for interactive GNU Bash sessions
* nicer ${PS1} for interactive GNU Bash sessions
* ensure GNU Bash uses our version of the less pager, even if busybox' version is installed
* Updates (automatic)
* XDA Labs (1.1.4b)
* (Simple) Calendar (3.2.4)

@ -1,47 +1,33 @@
# /etc/bash/bashrc
#
# This file is sourced by all *interactive* bash shells on startup,
# including some apparently interactive shells such as scp and rcp
# that can't tolerate any output. So make sure this doesn't display
# anything or bad things will happen !
# /system/etc/bashrc
export SHELL=${BASH}
export HOME=/sdcard
export HOSTNAME=$(getprop ro.cm.device)
export TMPDIR=${HOME}/.bash_tmp
export HISTFILE=${HOME}/.bash_history
mkdir -p ${TMPDIR}
export TERM=xterm
export TMPDIR=/data/local/tmp
export USER=$(id -un)
export PAGER=less
# Test for an interactive shell. There is no need to set anything
# past this point for scp and rcp, and it's important to refrain from
# outputting anything in those cases.
if [[ $- != *i* ]] ; then
# Shell is non-interactive. Be done now!
return
fi
# Bash won't get SIGWINCH if another process is in the foreground.
# Enable checkwinsize so that bash will check the terminal size when
# it regains control. #65623
# http://cnswww.cns.cwru.edu/~chet/bash/FAQ (E11)
shopt -s checkwinsize
export PAGER=less.bin
# Enable history appending instead of overwriting. #139609
[[ $- != *i* ]] && return
shopt -s checkwinsize
shopt -s histappend
# enable colorful terminal
if [[ ${EUID} == 0 ]] ; then
PS1='\[\033[01;31m\]${HOSTNAME:=$(hostname)}\[\033[01;34m\] \W \$\[\033[00m\] '
else
PS1='\[\033[01;32m\]${USER:=$(id \-un)}@${HOSTNAME:=$(hostname)}\[\033[01;34m\] \w \$\[\033[00m\] '
fi
alias su="su --shell ${SHELL}"
export SHELL=/system/xbin/bash.bin
red="\[\033[01;38;5;1m\]"
gre="\[\033[01;38;5;2m\]"
blu="\[\033[01;38;5;4m\]"
whi="\[\033[01;38;5;7m\]"
# empty the buffer
clear
export HOSTNAME=$(hostname)
export USER=$(whoami)
export PS1="${whi}[ ${blu}${USER} ${whi}@ ${red}${HOSTNAME} ${whi}: ${gre}\w ${whi}] "
# correct the terminal size
resize >/dev/null
clear
cd ${HOME}

Loading…
Cancel
Save