mirror of
https://github.com/pygos/build.git
synced 2024-12-23 23:50:51 +01:00
Add bash startup files, fix bash startup
- Add startup files - Fix initrd to no leak environment variables - Start bash from initrd as login shell (for now) Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
This commit is contained in:
parent
9b7c8c5730
commit
8230c3996b
4 changed files with 109 additions and 1 deletions
51
pkg/bash/bashrc
Normal file
51
pkg/bash/bashrc
Normal file
|
@ -0,0 +1,51 @@
|
|||
# /etc/bashrc
|
||||
|
||||
# System wide functions and aliases
|
||||
# Environment stuff goes in /etc/profile
|
||||
|
||||
# Prevent doublesourcing
|
||||
if [ -z "$BASHRCSOURCED" ]; then
|
||||
BASHRCSOURCED="Y"
|
||||
|
||||
# are we an interactive shell?
|
||||
if [ "$PS1" ]; then
|
||||
shopt -s histappend
|
||||
shopt -s checkwinsize
|
||||
history -a
|
||||
|
||||
PROMPT_COMMAND=""
|
||||
|
||||
if test "$UID" = 0 ; then
|
||||
PS1="\[\033[1;31m\][\u@\h \W]# \[\033[0m\]"
|
||||
else
|
||||
PS1="\[\033[0;32m\][\u@\h \W]$ \[\033[0m\]"
|
||||
fi
|
||||
fi
|
||||
|
||||
# We're not a login shell
|
||||
if ! shopt -q login_shell ; then
|
||||
# By default, we want umask to get set. This sets it for non-login shell.
|
||||
# Current threshold for system reserved uid/gids is 1000
|
||||
if [ $UID -gt 999 ] && [ "`id -gn`" = "`id -un`" ]; then
|
||||
umask 002
|
||||
else
|
||||
umask 022
|
||||
fi
|
||||
|
||||
SHELL=/bin/bash
|
||||
|
||||
# Only display echos from profile.d scripts if we are no login shell
|
||||
# and interactive - otherwise just process them to set envvars
|
||||
for i in /etc/profile.d/*.sh; do
|
||||
if [ -r "$i" ]; then
|
||||
if [ "$PS1" ]; then
|
||||
. "$i"
|
||||
else
|
||||
. "$i" >/dev/null
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
unset i
|
||||
fi
|
||||
fi
|
|
@ -37,4 +37,8 @@ deploy() {
|
|||
|
||||
mv "$DEPLOY/lib" "$DEVDEPLOY"
|
||||
mv "$DEPLOY/include" "$DEVDEPLOY"
|
||||
|
||||
mkdir -p "$DEPLOY/etc/"
|
||||
cp "$SCRIPTDIR/pkg/bash/bashrc" "$DEPLOY/etc/"
|
||||
cp "$SCRIPTDIR/pkg/bash/profile" "$DEPLOY/etc/"
|
||||
}
|
||||
|
|
51
pkg/bash/profile
Normal file
51
pkg/bash/profile
Normal file
|
@ -0,0 +1,51 @@
|
|||
# /etc/profile
|
||||
|
||||
# System wide environment and startup programs, for login setup
|
||||
# Functions and aliases go in /etc/bashrc
|
||||
|
||||
if [ -x /bin/id ]; then
|
||||
if [ -z "$EUID" ]; then
|
||||
# ksh workaround
|
||||
EUID=`id -u`
|
||||
UID=`id -ru`
|
||||
fi
|
||||
|
||||
USER="`id -un`"
|
||||
LOGNAME=$USER
|
||||
fi
|
||||
|
||||
HOSTNAME=$(/bin/cat /etc/hostname)
|
||||
HISTSIZE=1000
|
||||
HISTCONTROL=ignoreboth
|
||||
PATH=/bin
|
||||
|
||||
export PATH USER LOGNAME HOSTNAME HISTSIZE HISTCONTROL
|
||||
|
||||
# By default, we want umask to get set. This sets it for login shell
|
||||
# Current threshold for system reserved uid/gids is 1000
|
||||
if [ $UID -gt 999 ] && [ "`id -gn`" = "`id -un`" ]; then
|
||||
umask 002
|
||||
else
|
||||
umask 022
|
||||
fi
|
||||
|
||||
for i in /etc/profile.d/*.sh ; do
|
||||
if [ -r "$i" ]; then
|
||||
if [ "${-#*i}" != "$-" ]; then
|
||||
. "$i"
|
||||
else
|
||||
. "$i" >/dev/null
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
unset i
|
||||
|
||||
if [ -n "${BASH_VERSION-}" ] ; then
|
||||
if [ -f /etc/bashrc ] ; then
|
||||
# Bash login shells run only /etc/profile
|
||||
# Bash non-login shells run only /etc/bashrc
|
||||
# Check for double sourcing is done in /etc/bashrc.
|
||||
. /etc/bashrc
|
||||
fi
|
||||
fi
|
|
@ -107,4 +107,6 @@ umount -l /dev
|
|||
umount /sys
|
||||
umount /proc
|
||||
|
||||
exec /bin/busybox switch_root /newroot /bin/bash
|
||||
unset -v singleuser overlay_dev root root_sfs
|
||||
|
||||
exec /bin/busybox switch_root /newroot /bin/bash --login
|
||||
|
|
Loading…
Reference in a new issue