Skip to content
This repository has been archived by the owner on Oct 8, 2020. It is now read-only.

Don't assume the app is in /app, expose env variables to subsequent buildpack #46

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 30 additions & 16 deletions bin/compile
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ BP_DIR=$(cd $(dirname ${0:-}); cd ..; pwd)
PROFILE_PATH="$BUILD_DIR/.profile.d/geo.sh"
mkdir -p $(dirname $PROFILE_PATH)

# Set up exports file
EXPORTS_PATH="$BP_DIR/export"

# Functions
function indent() {
c='s/^/ /'
Expand Down Expand Up @@ -53,6 +56,10 @@ function set-default-env (){
echo "export $1=\${$1:-$2}" >> $PROFILE_PATH
}

function set-export (){
echo "export $1=$2" >> $EXPORTS_PATH
}

# Retrieve versions
GEOS_VERSION=$(manifest_version "geos")
GDAL_VERSION=$(manifest_version "gdal")
Expand Down Expand Up @@ -97,21 +104,28 @@ for dir in $VENDORED_GEOS $VENDORED_GDAL $VENDORED_PROJ; do
done

# App directories
APP_VENDOR="/app/$TARGET_VENDOR_DIR"

# Setup environment variables
set-env GEOS_LIBRARY_PATH "$APP_VENDOR/lib"
set-env GDAL_LIBRARY_PATH "$APP_VENDOR/lib"
set-env PROJ4_LIBRARY_PATH "$APP_VENDOR/lib"
set-env GDAL_DATA "$APP_VENDOR/share/gdal"


# Export env var for next build
echo "BUNDLE_BUILD__RGEO=\"--with-opt-dir=$BUILD_DIR/$TARGET_VENDOR_DIR --with-geos-config=$BUILD_DIR/$TARGET_VENDOR_DIR/bin/geos-config\"" >> $BP_DIR/export
set-default-env BUNDLE_BUILD__RGEO "--with-opt-dir=$TARGET_VENDOR_DIR --with-geos-config=$TARGET_VENDOR_DIR/bin/geos-config"
set-default-env LIBRARY_PATH "$APP_VENDOR/lib"
set-default-env LD_LIBRARY_PATH "$APP_VENDOR/lib"
set-default-env CPATH "$APP_VENDOR/include"
set-default-env PATH "$APP_VENDOR/bin"
APP_VENDOR_RUNTIME="$\HOME/$TARGET_VENDOR_DIR"
APP_VENDOR_BUILD="$BUILD_DIR/$TARGET_VENDOR_DIR"

# Setup environment variables needed to run the app
set-env GEOS_LIBRARY_PATH "$APP_VENDOR_RUNTIME/lib"
set-env GDAL_LIBRARY_PATH "$APP_VENDOR_RUNTIME/lib"
set-env PROJ4_LIBRARY_PATH "$APP_VENDOR_RUNTIME/lib"
set-env GDAL_DATA "$APP_VENDOR_RUNTIME/share/gdal"
set-default-env LIBRARY_PATH "$APP_VENDOR_RUNTIME/lib"
set-default-env LD_LIBRARY_PATH "$APP_VENDOR_RUNTIME/lib"
set-default-env CPATH "$APP_VENDOR_RUNTIME/include"
set-default-env PATH "$APP_VENDOR_RUNTIME/bin"

# Set up environment variables needed during the remainder of
# the build process.. These can be read by subsequent buildpacks
set-export GEOS_LIBRARY_PATH "$APP_VENDOR_BUILD/lib"
set-export GDAL_LIBRARY_PATH "$APP_VENDOR_BUILD/lib"
set-export PROJ4_LIBRARY_PATH "$APP_VENDOR_BUILD/lib"
set-export GDAL_DATA "$APP_VENDOR_BUILD/share/gdal"
set-export LIBRARY_PATH "$APP_VENDOR_BUILD/lib"
set-export LD_LIBRARY_PATH "$APP_VENDOR_BUILD/lib"
set-export CPATH "$APP_VENDOR_BUILD/include"
set-export PATH "$APP_VENDOR_BUILD/bin:\$PATH"

echo "-----> Vendoring geo libraries done"