Skip to content
Snippets Groups Projects
Commit be618ea1 authored by Jan David Mol's avatar Jan David Mol
Browse files

Task #9408: Let template depend on versionXXXX executables instead of presence...

Task #9408: Let template depend on versionXXXX executables instead of presence of svn branch at runtime
parent 0ecfd50a
No related branches found
No related tags found
No related merge requests found
# $Id$
lofar_package(Docker 1.0)
lofar_package(Docker 1.0 DEPENDS Common)
include(LofarFindPackage)
lofar_find_package(Subversion REQUIRED)
include(LofarPackageVersion)
# Build version info
set(docker_LIB_SRCS
Package__Version.cc
)
lofar_add_library(docker ${docker_LIB_SRCS})
lofar_add_bin_program(versiondocker versiondocker.cc)
#
# For given directories, we generate the Dockerfile
......@@ -19,14 +27,9 @@ set(DOCKER_TEMPLATE_DIRS
lofar-pipeline
lofar-outputproc)
# Create our template engine, using build-specific info
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/template.in
${CMAKE_CURRENT_BINARY_DIR}/template @ONLY)
# Note: "template" only works as long as the sources are still around,
# since it uses svn to query information from them.
lofar_add_bin_scripts(${CMAKE_CURRENT_BINARY_DIR}/template)
lofar_add_bin_scripts(template)
lofar_add_sbin_scripts(docker-build-all.sh)
# Convert Dockerfile.tmpl -> Dockerfile in ${DOCKER_TEMPLATE_DIRS}
......@@ -39,8 +42,8 @@ foreach(_dir ${DOCKER_TEMPLATE_DIRS})
# when "all" is build.
add_custom_command(
OUTPUT ${_dst}
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/template < ${_src} > ${_dst}
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/template ${_src}
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/template < ${_src} > ${_dst}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/template ${_src} ${CMAKE_CURRENT_BINARY_DIR}/versiondocker
)
add_custom_target(${_dir}_Dockerfile_target ALL DEPENDS ${_dst})
......
#!/bin/bash
#!/bin/bash
#
# Template engine for LOFAR
#
......@@ -20,29 +19,17 @@
# ----- LOFAR_BRANCH_NAME = UNKNOWN -----
# Make sure we obtain info about the project source!
SVN_INFO=`@Subversion_SVN_EXECUTABLE@ info @PROJECT_SOURCE_DIR@`
# Extract repository root, e.g. https://svn.astron.nl/LOFAR
REPO=`echo "$SVN_INFO" | perl -ne 'print "$1" if /Repository Root: +(.+)/;'`
# Extract branch URL, e.g. https://svn.astron.nl/LOFAR/branches/LOFAR-Task1234
URL=`echo "$SVN_INFO" | perl -ne 'print "$1" if /URL: +(.+)/;'`
#PATH=$PATH:.
VERSION_INFO=`versiondocker`
# Extract branch name w.r.t. repository root, e.g. branches/LOFAR-Task1234
BRANCH=`echo "$URL" | perl -ne 'print "$1" if m|^\Q'"$REPO"'\E/?(.+)|;'`
# Define $LOFAR_BRANCH_NAME if all the above succeeded
if [ -n "$REPO" -a -n "$BRANCH" ]; then
export LOFAR_BRANCH_NAME=${BRANCH}
else
export LOFAR_BRANCH_NAME=UNKNOWN
fi
export LOFAR_BRANCH_NAME=`echo "$VERSION_INFO" | perl -ne 'print "$1" if /branch += +(.+)/;'`
# ----- LOFAR_BRANCH_URL = https://svn.astron.nl/LOFAR/branches/LOFAR-Task1234 -----
# ----- LOFAR_BRANCH_URL = https://svn.astron.nl/LOFAR/trunk -----
# ----- LOFAR_BRANCH_URL = https://svn.astron.nl/LOFAR/tags/LOFAR-Release-2_15_1 -----
export LOFAR_BRANCH_URL="$URL"
export LOFAR_BRANCH_URL="https://svn.astron.nl/LOFAR/${LOFAR_BRANCH_NAME}"
# ----- LOFAR_TAG = 1234 -----
# ----- LOFAR_TAG = trunk -----
......@@ -50,14 +37,14 @@ export LOFAR_BRANCH_URL="$URL"
case "${LOFAR_BRANCH_NAME}" in
trunk) export LOFAR_TAG=trunk ;;
tags/*) export LOFAR_TAG=${BRANCH##tags/LOFAR-Release-} ;;
branches/*) export LOFAR_TAG=${BRANCH##branches/LOFAR*Task} ;;
tags/*) export LOFAR_TAG=${LOFAR_BRANCH_NAME##tags/LOFAR-Release-} ;;
branches/*) export LOFAR_TAG=${LOFAR_BRANCH_NAME##branches/LOFAR*Task} ;;
*) export LOFAR_TAG=latest ;;
esac
# ----- LOFAR_REVISION = 12345 -----
export LOFAR_REVISION=`echo "$SVN_INFO" | perl -ne 'print "$1" if /Revision: +(.+)/;'`
export LOFAR_REVISION=`echo "$VERSION_INFO" | perl -ne 'print "$1" if /overall revision += +([0-9]+)/;'`
# ----- NOW = 2016-01-01 10:11:12 -----
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment