#!/bin/bash # # detect-language returns a string indicating the image repository to use as a base # image for this source repository. Return "docker.io/*/*" for Docker images, a two # segment entry for a local image repository, or a single segment name to search # in the current namespace. Set a tag to qualify the version - e.g. "ruby:1.9.3", # "nodejs:0.10". # set -o errexit set -o nounset set -o pipefail function has { [[ -n $(git ls-tree --full-name --name-only HEAD ${@:1}) ]] } function hasglob { git ls-tree --full-name --name-only HEAD | while read NAME; do [[ "$NAME" == $1 ]] && return 0 done } function key { git config --local --get "${1}" } prefix=${PREFIX:-openshift/} if has Gemfile Rakefile config.ru; then echo "${prefix}ruby" exit 0 fi if has pom.xml; then echo "${prefix}wildfly" exit 0 fi if has package.json app.json; then echo "${prefix}nodejs" exit 0 fi if has index.php composer.json; then echo "${prefix}php" exit 0 fi if has requirements.txt setup.py; then echo "${prefix}python" exit 0 fi if has index.pl cpanfile; then echo "${prefix}perl" exit 0 fi if has build.sbt; then echo "${prefix}scala" exit 0 fi if has project.json || hasglob '*.csproj'; then echo "${prefix}dotnet" exit 0 fi exit 1