aboutsummaryrefslogtreecommitdiff
path: root/paludis/repositories/e/ebuild/source_functions.bash
diff options
context:
space:
mode:
authorAvatar David Leverton <levertond@googlemail.com> 2007-12-28 22:29:03 +0000
committerAvatar David Leverton <levertond@googlemail.com> 2007-12-28 22:29:03 +0000
commitc4f5000e486d21f9d5a2d4e63529f452935eac81 (patch)
tree3b671e37610c414c37e6a51f8d452c6bfb2e3ae9 /paludis/repositories/e/ebuild/source_functions.bash
parent7c70f1f2c1faa9da8ebb5bc4431fbc41d89660e3 (diff)
downloadpaludis-c4f5000e486d21f9d5a2d4e63529f452935eac81.tar.gz
paludis-c4f5000e486d21f9d5a2d4e63529f452935eac81.tar.xz
Rework environment filtering, removing the need to try to parse bash code with sed.
Diffstat (limited to 'paludis/repositories/e/ebuild/source_functions.bash')
-rw-r--r--paludis/repositories/e/ebuild/source_functions.bash41
1 files changed, 41 insertions, 0 deletions
diff --git a/paludis/repositories/e/ebuild/source_functions.bash b/paludis/repositories/e/ebuild/source_functions.bash
new file mode 100644
index 000000000..4a5f588d2
--- /dev/null
+++ b/paludis/repositories/e/ebuild/source_functions.bash
@@ -0,0 +1,41 @@
+#!/bin/bash
+# vim: set sw=4 sts=4 et :
+
+# Copyright (c) 2007 David Leverton
+#
+# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005
+# Gentoo Foundation and distributed under the terms of the GNU General
+# Public License v2.
+#
+# This file is part of the Paludis package manager. Paludis is free software;
+# you can redistribute it and/or modify it under the terms of the GNU General
+# Public License, version 2, as published by the Free Software Foundation.
+#
+# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place, Suite 330, Boston, MA 02111-1307 USA
+
+ebuild_safe_source()
+{
+ set -- "${@}" \
+ EUID PPID UID FUNCNAME GROUPS SHELLOPTS \
+ 'BASH_@(ARGC|ARGV|LINENO|SOURCE|VERSINFO|REMATCH)' \
+ 'BASH_COMPLETEION?(_DIR)' 'bash+([0-9])?([a-z])' \
+ EBUILD_KILL_PID PALUDIS_LOADSAVEENV_DIR PALUDIS_DO_NOTHING_SANDBOXY SANDBOX_ACTIVE
+
+ trap DEBUG
+ set -T
+ shopt -s extdebug
+ trap "[[ \${BASH_COMMAND%% *} == @(eval|trap) ||
+ ( \${BASH_COMMAND} != *([^\$'\n'])=* && \${BASH_COMMAND} != export\ * ) ||
+ \${BASH_COMMAND} != ?(export\ )@($(IFS='|'; shift; echo "${*}"))?(=*) ]]" DEBUG
+
+ source "${1}"
+ eval "trap DEBUG; shopt -u extdebug; set +T; return ${?}"
+}
+