diff options
author | 2007-12-28 22:29:03 +0000 | |
---|---|---|
committer | 2007-12-28 22:29:03 +0000 | |
commit | c4f5000e486d21f9d5a2d4e63529f452935eac81 (patch) | |
tree | 3b671e37610c414c37e6a51f8d452c6bfb2e3ae9 /paludis/repositories/e/ebuild/source_functions.bash | |
parent | 7c70f1f2c1faa9da8ebb5bc4431fbc41d89660e3 (diff) | |
download | paludis-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.bash | 41 |
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 ${?}" +} + |