|
1 | | -#!/bin/ash |
| 1 | +#!/bin/bash |
2 | 2 | # |
3 | | -# All UPERCASE variables are provided externally from this script |
| 3 | +# All UPERCASE variables are provided externally from this yml |
4 | 4 |
|
5 | 5 | set -eu |
6 | 6 | set -o pipefail |
7 | 7 |
|
8 | | -# copy the artifact to the task-output folder |
9 | | -cp artifact/$CF_APP_PATH task-output/. |
10 | | - |
11 | 8 | cd task-output |
12 | 9 |
|
13 | | -# convert 'artifact-*.jar' into 'artifact-1.0.0-rc.1.jar' |
14 | | -appPath=$(ls $CF_APP_PATH) |
15 | | - |
16 | | -cat <<EOF >manifest.yml |
17 | | ---- |
18 | | -applications: |
19 | | -- name: $CF_APP_NAME |
20 | | - path: $appPath |
21 | | -EOF |
22 | | - |
23 | | -[ -n "$CF_APP_HOST" ] && echo " host: $CF_APP_HOST" >> manifest.yml |
24 | | -[ -n "$CF_APP_MEMORY" ] && echo " memory: $CF_APP_MEMORY" >> manifest.yml |
25 | | -[ -n "$CF_APP_INSTANCES" ] && echo " instances: $CF_APP_INSTANCES" >> manifest.yml |
26 | | -[ -n "$CF_APP_TIMEOUT" ] && echo " timeout: $CF_APP_TIMEOUT" >> manifest.yml |
27 | | -# note: should be passed in as an array: [service1,service2,etc] |
28 | | -[ -n "$CF_APP_SERVICES" ] && echo " services: $CF_APP_SERVICES" >> manifest.yml |
29 | | -# note: concourse passes this as a json object, which is cool |
30 | | -[ -n "$CF_APP_ENV_VARS" ] && echo " env: $CF_APP_ENV_VARS" >> manifest.yml |
31 | | - |
32 | | -echo "Generated manifest:" |
33 | | -cat manifest.yml |
| 10 | +# Build the yaml create script |
| 11 | +yml= |
| 12 | +[ "${MF_NAME:-}" ] && yml+="applications[0].name: $MF_NAME\n" |
| 13 | +[ "${MF_BUILDPACK:-}" ] && yml+="applications[0].buildpack: $MF_BUILDPACK\n" |
| 14 | +[ "${MF_COMMAND:-}" ] && yml+="applications[0].command: $MF_COMMAND\n" |
| 15 | +[ "${MF_DISK_QUOTA:-}" ] && yml+="applications[0].disk_quota: $MF_DISK_QUOTA\n" |
| 16 | +[ "${MF_DOMAIN:-}" ] && yml+="applications[0].domain: $MF_DOMAIN\n" |
| 17 | +[ "${MF_DOMAINS:-}" ] && yml+="applications[0].domains: $MF_DOMAINS\n" |
| 18 | +[ "${MF_HEALTH_CHECK_HTTP_ENDPOINT:-}" ] && yml+="applications[0].health-check-http-endpoint: $MF_HEALTH_CHECK_HTTP_ENDPOINT\n" |
| 19 | +[ "${MF_HEALTH_CHECK_TYPE:-}" ] && yml+="applications[0].health-check-type: $MF_HEALTH_CHECK_TYPE\n" |
| 20 | +[ "${MF_HOST:-}" ] && yml+="applications[0].host: $MF_HOST\n" |
| 21 | +[ "${MF_HOSTS:-}" ] && yml+="applications[0].hosts: $MF_HOSTS\n" |
| 22 | +[ "${MF_INSTANCES:-}" ] && yml+="applications[0].instances: $MF_INSTANCES\n" |
| 23 | +[ "${MF_MEMORY:-}" ] && yml+="applications[0].memory: $MF_MEMORY\n" |
| 24 | +[ "${MF_NO_HOSTNAME:-}" ] && yml+="applications[0].no-hostname: $MF_NO_HOSTNAME\n" |
| 25 | +[ "${MF_NO_ROUTE:-}" ] && yml+="applications[0].no-route: $MF_NO_ROUTE\n" |
| 26 | +[ "${MF_PATH:-}" ] && yml+="applications[0].path: $MF_PATH\n" |
| 27 | +[ "${MF_RANDOM_ROUTE:-}" ] && yml+="applications[0].random_route: $MF_RANDOM_ROUTE\n" |
| 28 | +[ "${MF_ROUTES:-}" ] && yml+="applications[0].routes: $MF_ROUTES\n" |
| 29 | +[ "${MF_STACK:-}" ] && yml+="applications[0].stack: $MF_STACK\n" |
| 30 | +[ "${MF_TIMEOUT:-}" ] && yml+="applications[0].timeout: $MF_TIMEOUT\n" |
| 31 | +[ "${MF_ENV:-}" ] && yml+="applications[0].env: $MF_ENV\n" |
| 32 | +[ "${MF_SERVICES:-}" ] && yml+="applications[0].services: $MF_SERVICES\n" |
| 33 | + |
| 34 | +if [ -n "$yml" ]; then |
| 35 | + echo -e "---\n$(echo -e $yml | yaml n -s -)" > manifest.yml |
| 36 | + echo 'Generated manifest:' |
| 37 | + cat manifest.yml |
| 38 | +else |
| 39 | + echo 'No manifest options specified: nothing to generate!' |
| 40 | +fi |
34 | 41 |
|
35 | 42 | cd .. |
0 commit comments