summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-apps/prefix-chain-utils/files/startprefix.in')
-rw-r--r--sys-apps/prefix-chain-utils/files/startprefix.in38
1 files changed, 38 insertions, 0 deletions
diff --git a/sys-apps/prefix-chain-utils/files/startprefix.in b/sys-apps/prefix-chain-utils/files/startprefix.in
new file mode 100644
index 000000000000..1b84ed3c28e1
--- /dev/null
+++ b/sys-apps/prefix-chain-utils/files/startprefix.in
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+
+. "@GENTOO_PORTAGE_EPREFIX@"/sbin/functions.sh
+einfo "entering chained prefix @GENTOO_PORTAGE_EPREFIX@ ..."
+
+# inform profiles very early of us beeing interactive (or at least,
+# we will _start_ an interactive shell, so we want the according bits.)
+set -i
+
+. "@GENTOO_PORTAGE_EPREFIX@"/etc/profile
+
+# if there is no local portage, foreign portage instances need to know
+# where to merge to - and thus we need to set EPREFIX.
+# the other way round, if there is a local portage, EPREFIX may not
+# point anywhere else than to our local EPREFIX or be unset...
+
+# DISABLED: this is done by etc/profile now, to be able to start a
+# prefix environment by sourcing etc/profile.
+
+#if [[ -x "@GENTOO_PORTAGE_EPREFIX@"/usr/bin/emerge ]]; then
+# if [[ -n "${EPREFIX}" ]] && [[ "${EPREFIX}" != "@GENTOO_PORTAGE_EPREFIX@" ]]; then
+# ewarn "EPREFIX is set. this will render portage unusable, unsetting"
+# unset EPREFIX
+# fi
+#else
+# export EPREFIX="@GENTOO_PORTAGE_EPREFIX@"
+#fi
+
+# a common problem: the child has no less installed, but baselayout insists
+# on setting PAGER to EPREFIX/usr/bin/less. everything gets back to normal
+# when unsetting PAGER in this case.
+if [[ ! -x "${PAGER}" ]]; then
+ unset PAGER
+fi
+
+bash --noprofile
+einfo "leaving chained prefix @GENTOO_PORTAGE_EPREFIX@ ..."
+