summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2012-04-26 19:37:56 (GMT)
committerBrad King <brad.king@kitware.com>2012-04-26 19:39:06 (GMT)
commitb7daff9b8b776eeed34385d8ae2019dc9e113c52 (patch)
treed45e354be3ba5d0d71f14ee2a3e74ffc1451649b
parent7e293acce3e66cd5292051119706e1a34b248092 (diff)
downloadCMake-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-xsetup-stage46
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.'