diff options
author | Brad King <brad.king@kitware.com> | 2012-04-26 19:37:56 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2012-04-26 19:39:06 (GMT) |
commit | b7daff9b8b776eeed34385d8ae2019dc9e113c52 (patch) | |
tree | d45e354be3ba5d0d71f14ee2a3e74ffc1451649b | |
parent | 7e293acce3e66cd5292051119706e1a34b248092 (diff) | |
download | CMake-b7daff9b8b776eeed34385d8ae2019dc9e113c52.zip CMake-b7daff9b8b776eeed34385d8ae2019dc9e113c52.tar.gz CMake-b7daff9b8b776eeed34385d8ae2019dc9e113c52.tar.bz2 |
setup-stage: Optionally reconfigure topic stage
When the topic stage has already been configured present the current
configuration and prompt for optional reconfiguration. While at it,
make the topic stage remote name configurable by the project.
-rwxr-xr-x | setup-stage | 46 |
1 files changed, 36 insertions, 10 deletions
diff --git a/setup-stage b/setup-stage index ef53b99..323e47a 100755 --- a/setup-stage +++ b/setup-stage @@ -37,17 +37,43 @@ die() { cd "${BASH_SOURCE%/*}" && # Load the project configuration. -url=$(git config -f config --get stage.url) && -pushurl=$(git config -f config --get stage.pushurl || echo '') || +fetchurl=$(git config -f config --get stage.url) && +pushurl_=$(git config -f config --get stage.pushurl || echo '') && +remote=$(git config -f config --get stage.remote || echo 'stage') || die 'This project is not configured to use a topic stage.' -# Configure the remote if necessary. -if git config remote.stage.url >/dev/null; then - echo 'Topic stage already configured.' +# Get current stage push URL. +pushurl=$(git config --get remote."$remote".pushurl || + git config --get remote."$remote".url || echo '') && + +# Tell user about current configuration. +if test -n "$pushurl"; then + echo 'Remote "'"$remote"'" is currently configured to push to + + '"$pushurl"' +' && + read -ep 'Reconfigure Topic Stage? [y/N]: ' ans && + if [ "$ans" == "y" ] || [ "$ans" == "Y" ]; then + setup=1 + else + setup='' + fi else + setup=1 +fi + +# Perform setup if necessary. +if test -n "$setup"; then echo 'Setting up the topic stage...' && - git remote add stage "$url" && - if test -n "$pushurl"; then - git config remote.stage.pushurl "$pushurl" - fi -fi || die 'Could not add the topic stage remote.' + if test -z "$pushurl"; then + git remote add "$remote" "$fetchurl" + else + git config remote."$remote".url "$fetchurl" + fi && + pushurl="${pushurl_}" && + git config remote."$remote".pushurl "$pushurl" && + echo 'Remote "'"$remote"'" is now configured to push to + + '"$pushurl"' +' +fi || die 'Could not configure the topic stage remote.' |