From b4ce2b696beb585ae3e7ede71f9d68a4cbf73895 Mon Sep 17 00:00:00 2001 From: William Petit Date: Mon, 18 Apr 2016 15:14:38 +0200 Subject: [PATCH 1/3] =?UTF-8?q?R=C3=A9cup=C3=A9ration=20et=20chargement=20?= =?UTF-8?q?de=20variables=20locales=20via=20fichier=20.tamarinrc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hooks/07-add-package-version-suffix-prebuild | 5 +++++ lib/build.sh | 8 ++++---- lib/util.sh | 20 ++++++++++++++------ package | 12 +----------- 4 files changed, 24 insertions(+), 21 deletions(-) diff --git a/hooks/07-add-package-version-suffix-prebuild b/hooks/07-add-package-version-suffix-prebuild index 2a2a739..7f29d21 100755 --- a/hooks/07-add-package-version-suffix-prebuild +++ b/hooks/07-add-package-version-suffix-prebuild @@ -6,6 +6,11 @@ if [ ! -f debian/changelog ]; then exit fi +if [ $(get_opt no_version_suffix 'no') == 'yes' ]; then + info "Not adding version suffix." + exit +fi + if [ -d .git ]; then info "It seems to be a Git repository. Generating version suffix based on Git history..." commit_count=$(git rev-list --count HEAD) diff --git a/lib/build.sh b/lib/build.sh index 88dc5f9..b7bb8a2 100755 --- a/lib/build.sh +++ b/lib/build.sh @@ -16,8 +16,7 @@ function build_project() info "Building project '${PROJECT_NAME}' for ${TARGET_ARCH} architecture..." - load_default_opts - + # Initalize opts set_opt project_name "${PROJECT_NAME}" set_opt build_branch "${BUILD_BRANCH}" set_opt build_tag "${BUILD_TAG}" @@ -30,9 +29,10 @@ function build_project() cd ${SRC_DIR} cp -r ${SRC_DIR}/. "${workspace}" - exec_hooks "prebuild" "${workspace}" + cd "$workspace" - cd "${workspace}" + load_local_opts + exec_hooks "prebuild" "${workspace}" dpkg-buildpackage -b -a"${TARGET_ARCH}" 2> >(stderr) 1> >(stdout) diff --git a/lib/util.sh b/lib/util.sh index 7b0d3bf..e0f0857 100644 --- a/lib/util.sh +++ b/lib/util.sh @@ -4,6 +4,7 @@ HOOKS_DIR="${BASE_DIR}/hooks" DEFAULT_OPTS_FILE="${BASE_DIR}/tmp/default_opts" OPT_FILE="${BASE_DIR}/tmp/tamarin/opts" OPT_PREFIX="tamarin_opt_" +LOCAL_OPTS_FILE=".tamarinrc" # Colors @@ -96,11 +97,18 @@ function remove_ansi { echo "$@" | sed 's,\x1B\[[0-9;]*[a-zA-Z],,g' } -function load_default_opts { - if [[ -e "${DEFAULT_OPTS_FILE}" ]]; then - info "Loading default opts..." - else - info "No default opts found." +function load_local_opts { + if [ -e "${LOCAL_OPTS_FILE}" ]; then + info "Loading local opts..." + while read line; do + if [[ ! "${line}" =~ ^\s*# ]]; then + set -- $(echo $line | tr '=' ' ') + local key=$1 + local value=$2 + debug "Load opt $key=$value" + set_opt $key $value + fi + done < "${LOCAL_OPTS_FILE}" fi } @@ -118,7 +126,7 @@ function set_opt { mkdir -p "$(dirname ${OPT_FILE})" touch "${OPT_FILE}" sed -i "s/^${OPT_PREFIX}${opt_name}*$//" "${OPT_FILE}" - echo "${OPT_PREFIX}${opt_name}=\"${opt_value}\"" >> "${OPT_FILE}" + echo "local ${OPT_PREFIX}${opt_name}=\"${opt_value}\"" >> "${OPT_FILE}" } function exec_hooks { diff --git a/package b/package index 6e89b3b..daa0556 100755 --- a/package +++ b/package @@ -16,7 +16,6 @@ function show_usage { echo echo " -p Path to the project to build" echo " -a Optional : Target architecture (default amd64)" - echo " -o Optional : Default options file to load (default none)" echo " -d Optional : Destination of the builed packages (default ./packages)" echo " -i Optional : Name of the Docker image to use for build (default: debian:jessie)" echo " -k Optional : Keep the Docker container after build " @@ -62,12 +61,6 @@ function create_container { EOF - # Add default opts file if defined - if [[ -e "${DEFAULT_OPTS}" ]]; then - ln -s "${DEFAULT_OPTS}" "$temp_dir/default_opts" - echo "ADD ./default_ops /tmp/tamarin/default_opts" >> "$temp_dir/Dockerfile" - fi - exec_hooks "containerbuild" "$temp_dir" echo "CMD /root/.tamarin/lib/build.sh ${projectName} ${BUILD_BRANCH} /tmp ${BUILD_TAG}" >> "$temp_dir/Dockerfile" @@ -152,9 +145,6 @@ do a) TARGET_ARCH=${OPTARG} ;; - o) - DEFAULT_OPTS=$(readlink -f ${OPTARG}) - ;; *) show_usage ;; @@ -172,7 +162,7 @@ if [[ "${TARGET_ARCH}" =~ ^i[0-9]86$ ]] && [ -z "${BASE_IMAGE}" ]; then BASE_IMAGE=${DEFAULT_32_IMAGE} fi -[[ -z ${BASE_IMAGE} ]] && BASE_IMAGE=${DEFAULT_64_IMAGE} +[[ -z ${BASE_IMAGE} ]] && BASE_IMAGE=${DEFAULT_64_IMAGE} # # Warn user about "proxy" From 0ca55f3208ee460a16f453ea961fc333e9120aff Mon Sep 17 00:00:00 2001 From: William Petit Date: Tue, 6 Sep 2016 17:15:26 +0200 Subject: [PATCH 2/3] Correction montage des volumes pour Docker 1.12 et + --- package | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package b/package index daa0556..3487aa9 100755 --- a/package +++ b/package @@ -107,7 +107,7 @@ function main { docker_opt="${docker_opt}" fi - docker_opt="${docker_opt} -v=\"$PROJECT_PATH:/src:ro\" -v=\"$PROJECT_DEST:/dist:rw\" $container_tag" + docker_opt="${docker_opt} -v $PROJECT_PATH:/src:ro -v $PROJECT_DEST:/dist:rw $container_tag" info "Switching to container..." debug "docker ${docker_opt}" From 92b39b98879c5dbf17d4740c9c5d2d11cd6204c5 Mon Sep 17 00:00:00 2001 From: William Petit Date: Thu, 22 Sep 2016 09:09:55 +0200 Subject: [PATCH 3/3] Ajout flag pour afficher la version de Tamarin --- package | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/package b/package index 3487aa9..a898714 100755 --- a/package +++ b/package @@ -2,6 +2,7 @@ set -e +TAMARIN_VERSION=0.0.1 TAMARIN_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) BASE_DIR="$TAMARIN_DIR" source "$TAMARIN_DIR/lib/util.sh" @@ -15,6 +16,7 @@ function show_usage { echo "Parameters: " echo echo " -p Path to the project to build" + echo " -v Optional : Show Tamarin version" echo " -a Optional : Target architecture (default amd64)" echo " -d Optional : Destination of the builed packages (default ./packages)" echo " -i Optional : Name of the Docker image to use for build (default: debian:jessie)" @@ -121,7 +123,7 @@ function main { # # Parsing options # -while getopts "kp:d:i:B:t:a:o:" option +while getopts "vkp:d:i:B:t:a:o:" option do case $option in k) @@ -145,6 +147,10 @@ do a) TARGET_ARCH=${OPTARG} ;; + v) + echo "Tamarin v${TAMARIN_VERSION}" + exit + ;; *) show_usage ;;