added teamcity_export.sh

pull/2/head
Hari Sekhon 4 years ago
parent 66ef72ca74
commit ac87cae8e1

@ -0,0 +1,73 @@
#!/usr/bin/env bash
# vim:ts=4:sts=4:sw=4:et
#
# Author: Hari Sekhon
# Date: 2020-12-09 15:23:27 +0000 (Wed, 09 Dec 2020)
#
# https://github.com/HariSekhon/bash-tools
#
# License: see accompanying Hari Sekhon LICENSE file
#
# If you're using my code you're welcome to connect with me on LinkedIn and optionally send me feedback to help steer this or other code I publish
#
# https://www.linkedin.com/in/HariSekhon
#
set -euo pipefail
[ -n "${DEBUG:-}" ] && set -x
srcdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# shellcheck disable=SC1090
. "$srcdir/lib/utils.sh"
# shellcheck disable=SC2034,SC2154
usage_description="
Exports TeamCity configs for projects, buildTypes and VCS roots to local directories of the same name as each project
This mimicks the directory structure of TeamCity's datadir and Versioned Settings VCS export integration
Project IDs can be specified as arguments, otherwise iterates over all discovered projects including the Root project
"
# used by usage() in lib/utils.sh
# shellcheck disable=SC2034
usage_args="[<project_id1> <project_id2> ...]"
help_usage "$@"
#min_args 1 "$@"
basedir="$PWD"
if [ $# -gt 0 ]; then
for project_id in "$@"; do
echo "$project_id"
done
else
"$srcdir/teamcity_projects.sh" |
awk '{print $1}'
fi |
# don't use grep -v it can pipefail
sed '/^[[:space:]]*$/d' |
sort -u |
while read -r project_id; do
projectdir="$basedir/$project_id"
mkdir -p -v "$projectdir"
timestamp "Exporting TeamCity project '$project_id' to $projectdir"
cd "$projectdir"
# printed by the script
#timestamp "Exporting project '$project_id' config"
"$srcdir/teamcity_export_project_config.sh" "$project_id"
mkdir -p -v buildTypes
cd buildTypes
#timestamp "Exporting project '$project_id' buildTypes"
# restrict buildType exports to only this project
TEAMCITY_BUILDTYPES_PROJECT="$project_id" "$srcdir/teamcity_export_buildtypes.sh"
mkdir -p -v ../vcsRoots
cd ../vcsRoots
#timestamp "Exporting project '$project_id' VCS roots"
TEAMCITY_VCS_ROOTS_PROJECT="$project_id" "$srcdir/teamcity_export_vcs_roots.sh"
cd ..
echo
done
Loading…
Cancel
Save