#!/usr/bin/env bash cd src if [ -f debian/changelog ] || [ ! -d .git ]; then tamarin_info "Not a Git repository or Debian changelog already exists !" exit fi # Check ignore release tag IGNORE_RELEASE_TAG=$(tamarin_db get ignore_release_tag "yes") if [ "${IGNORE_RELEASE_TAG}" == "yes" ]; then tamarin_warn "Release tag is ignored. Add 'ignore_release_tag=no' in .tamarinrc to enable." exit fi # Get commits log as changelog BUILD_TAG=$(tamarin_db get build_tag "last") tamarin_debug "BUILD TAG IS ${BUILD_TAG}" if [[ ${BUILD_TAG} == "last" ]] then tags=$(git describe --match "release/*" --abbrev=0) else tagbranch="build-tag-${BUILD_TAG}" git checkout -b ${tagbranch} tamarin_db set "tag_branch" "${tag_branch}" local tags="${BUILD_TAG}" fi if [[ -z ${tags} ]] then tamarin_warn "No release tag found, you repo must have a tag like 'release/X.X'" exit fi touch debian/changelog for tag in ${tags} do logs=$(git log --pretty=format:"%an - %h : %s" ${tag} | sed 's/"/\\"/g') # Set the top commiter as the maintainer of the project if not defined top_contributor=$(git log --pretty=short | git shortlog -s -n -e | sed 's/^\s*[0-9]*\s*//g' | head -n 1) maintainer=$(tamarin_db get maintainer "${top_contributor}") project_name=$(tamarin_db get project_name) version=${tag#*/} #$(get_opt version 0.0.0) version=${version/_/-} #$(get_opt version 0.0.0) distribution=$(tamarin_db get distribution UNRELEASED) urgency=$(tamarin_db get urgency low) package_version=${version} # Define project_version if not defined if [ -z "$(tamarin_db get project_version)" ]; then # Share computed project version tamarin_db set project_version "${version}" fi echo "${project_name} (${version}) ${distribution}; urgency=${urgency}" >> debian/changelog echo >> debian/changelog while read -r entry; do echo " * ${entry}" >> debian/changelog done <<< "$(echo -e "${logs}" | sed 's/^"//')" echo >> debian/changelog echo " -- ${maintainer} $(date -R)" >> debian/changelog echo >> debian/changelog done