mirror of
https://github.com/kennethreitz/heroku-buildpack-python.git
synced 2026-06-05 23:10:16 +00:00
119 lines
2.0 KiB
Plaintext
Executable File
119 lines
2.0 KiB
Plaintext
Executable File
shopt -s extglob
|
|
|
|
if [ $(uname) == Darwin ]; then
|
|
sed() { command sed -l "$@"; }
|
|
else
|
|
sed() { command sed -u "$@"; }
|
|
fi
|
|
|
|
# Syntax sugar.
|
|
indent() {
|
|
sed "s/^/ /"
|
|
}
|
|
|
|
# Log output for warning detection
|
|
log-output() (
|
|
while read LINE;
|
|
do
|
|
echo "$LINE"
|
|
echo "$LINE" >> "$WARNINGS_LOG"
|
|
done
|
|
|
|
)
|
|
|
|
# Clean up pip output
|
|
cleanup() {
|
|
sed -e 's/\.\.\.\+/.../g' | sed -e '/already satisfied/Id' | sed -e '/Overwriting/Id' | sed -e '/python executable/Id' | sed -e '/no previously-included files/Id'
|
|
}
|
|
|
|
# Buildpack Indented line.
|
|
puts-line() {
|
|
echo " $@"
|
|
}
|
|
|
|
# Buildpack Steps.
|
|
puts-step() {
|
|
echo "-----> $@"
|
|
}
|
|
|
|
# Buildpack Warnings.
|
|
puts-warn() {
|
|
echo " ! $@"
|
|
}
|
|
|
|
# Buildpack Commands.
|
|
puts-cmd() {
|
|
echo " $ $@"
|
|
}
|
|
|
|
# Usage: $ set-env key value
|
|
set-env() {
|
|
echo "export $1=$2" >> $PROFILE_PATH
|
|
}
|
|
|
|
# Usage: $ set-default-env key value
|
|
set-default-env() {
|
|
echo "export $1=\${$1:-$2}" >> $PROFILE_PATH
|
|
}
|
|
|
|
# Usage: $ un-set-env key
|
|
un-set-env() {
|
|
echo "unset $1" >> $PROFILE_PATH
|
|
}
|
|
|
|
# Does some serious copying.
|
|
deep-cp() {
|
|
declare source="$1" target="$2"
|
|
|
|
mkdir -p "$target"
|
|
|
|
# cp doesn't like being called without source params,
|
|
# so make sure they expand to something first.
|
|
# subshell to avoid surprising caller with shopts.
|
|
(
|
|
shopt -s nullglob dotglob
|
|
set -- "$source"/!(tmp|.|..)
|
|
[[ $# == 0 ]] || cp -a "$@" "$target"
|
|
)
|
|
}
|
|
|
|
# Does some serious moving.
|
|
deep-mv() {
|
|
deep-cp "$1" "$2"
|
|
deep-rm "$1"
|
|
}
|
|
|
|
# Does some serious deleting.
|
|
deep-rm() {
|
|
# subshell to avoid surprising caller with shopts.
|
|
(
|
|
shopt -s dotglob
|
|
rm -rf "$1"/!(.curlrc|.netrc|tmp|.|..)
|
|
)
|
|
}
|
|
|
|
|
|
sub-env() {
|
|
|
|
WHITELIST=${2:-''}
|
|
BLACKLIST=${3:-'^(GIT_DIR|PYTHONHOME|LD_LIBRARY_PATH|LIBRARY_PATH|PATH)$'}
|
|
|
|
# Python-specific variables.
|
|
export PYHONHOME=$BUILD_DIR/.heroku/python
|
|
export PYTHONPATH=$BUILD_DIR/
|
|
|
|
(
|
|
if [ -d "$ENV_DIR" ]; then
|
|
for e in $(ls $ENV_DIR); do
|
|
echo "$e" | grep -E "$WHITELIST" | grep -qvE "$BLACKLIST" &&
|
|
export "$e=$(cat $ENV_DIR/$e)"
|
|
:
|
|
done
|
|
fi
|
|
|
|
$1
|
|
|
|
)
|
|
}
|
|
|