cloudfoundry/cloudfoundry-buildpack-java

View on GitHub
bin/detect

Summary

Maintainability
Test Coverage
#!/usr/bin/env bash
# vim: set ft=sh

BUILD_DIR=$1

JAVA_WEB_DIR="WEB-INF"
GRAILS_WEB_DIR="WEB-INF/lib/grails-web"
WEBAPP_DIR="webapps/ROOT"


### Play
if [ -n "$(find $BUILD_DIR -name 'play.*.jar')" ]; then
   echo "Play"
   exit 0
fi


### Grails
for dir in "${BUILD_DIR}/${WEBAPP_DIR}/${GRAILS_WEB_DIR}" "${BUILD_DIR}/${GRAILS_WEB_DIR}"; do
  if [ -d "$dir" ] && [ -n "$(find $dir -name '*.jar' -maxdepth 1)" ]; then
     echo "Grails"
     exit 0
  fi
done


### Spring
for dir in "${BUILD_DIR}/${WEBAPP_DIR}/${JAVA_WEB_DIR}" "${BUILD_DIR}/${JAVA_WEB_DIR}"; do
  [ -d "$dir" ] || continue

  if [ -d "$dir/classes/org/springframework" ]; then
     echo "Spring"
     exit 0
  fi

  [ -d "$dir/lib" ] || continue

  if [ -n "$(find "$dir/lib" -maxdepth 1 -name 'spring-core*.jar')" ] || \
      [ -n "$(find "$dir/lib" -maxdepth 1 -name 'org.springframework.core*.jar')" ]; then
     echo "Spring"
     exit 0
  fi
done


### JavaWeb
for dir in "${BUILD_DIR}/${WEBAPP_DIR}/${JAVA_WEB_DIR}" "${BUILD_DIR}/${JAVA_WEB_DIR}"; do
  if [ -f "$dir/web.xml" ]; then
     echo "Java Web"
     exit 0
  fi
done


### Java
if [ -n "$(find $BUILD_DIR -name '*.jar' -o -name '*.class')" ]; then
   echo "Java"
   exit 0
fi


echo "no"
exit 1