From d99c39a5823de57f55cf90ed1fa5da103fb0ca4d Mon Sep 17 00:00:00 2001 From: Michael Iedema Date: Wed, 26 Mar 2014 01:18:50 +0100 Subject: [PATCH] small fixups and misunderstandings about nested submodules --- clone.sh | 3 ++- create.sh | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++ delete.sh | 2 +- pull.sh | 3 +-- rename.sh | 2 +- switchto.sh | 4 ++-- 6 files changed, 76 insertions(+), 7 deletions(-) create mode 100755 create.sh diff --git a/clone.sh b/clone.sh index 4a7b157..2eb9040 100755 --- a/clone.sh +++ b/clone.sh @@ -30,7 +30,8 @@ do sayAndDo git checkout --track $remote done sayAndDo git checkout master - sayAndDo git submodule foreach 'git checkout master' + sayAndDo git submodule init + sayAndDo git submodule update --init --recursive cd .. echo fi diff --git a/create.sh b/create.sh new file mode 100755 index 0000000..b88d72d --- /dev/null +++ b/create.sh @@ -0,0 +1,69 @@ +#!/bin/bash +# +# Copyright 2014 Range Networks, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# See the COPYING file in the main directory for details. +# + +source $(dirname $0)/common.source + +usage () { + echo "# usage: ./create.sh component-directory (tag/branch name)" + exit 1 +} + +# What component do we want to manipulate? +if [ -z "$1" ]; then + usage +elif [ ! -d $1 ]; then + usage +else + COMPONENT=$1 +fi + +# Are we adding a creating or branch? +if [ -z "$2" ]; then + read -r -p "# Do you want to create a tag or branch? " TYPE +elif [ $2 == "tag" ]; then + TYPE="tag" +elif [ $2 == "branch" ]; then + TYPE="branch" +else + usage +fi + +# Which one should be created? +if [ -z "$3" ]; then + read -r -p "# What new $TYPE would you like to create? " NAME +else + NAME=$3 +fi + +# Really, truly? Alrighty, execute. +read -r -p "# To create a new $TYPE named $NAME, answer \"yes\" " ANSWER +if [ $ANSWER == "yes" ]; then + cd $COMPONENT + if [ $TYPE == "tag" ]; then + echo "# Sorry, tag creations haven't been implemented. Bailing." + exit 1 + elif [ $TYPE == "branch" ]; then + echo "# - creating..." + sayAndDo git checkout -b $NAME + echo "# - pushing to origin..." + sayAndDo git push -u origin $NAME + fi +else + echo "# - better safe than sorry, cancelling..." +fi diff --git a/delete.sh b/delete.sh index c746e4b..6ad7081 100755 --- a/delete.sh +++ b/delete.sh @@ -20,7 +20,7 @@ source $(dirname $0)/common.source usage () { - echo "# usage: ./delete.sh component-directory (tag/branch current-tag new-tag)" + echo "# usage: ./delete.sh component-directory (tag/branch name)" exit 1 } diff --git a/pull.sh b/pull.sh index 10460b7..20684c8 100755 --- a/pull.sh +++ b/pull.sh @@ -25,8 +25,7 @@ do echo "# pulling $component" cd $component sayAndDo git pull - sayAndDo git submodule update --remote - sayAndDo git submodule foreach --recursive 'git pull' + sayAndDo git submodule update --recursive cd .. echo fi diff --git a/rename.sh b/rename.sh index aa5b85c..7d53738 100755 --- a/rename.sh +++ b/rename.sh @@ -20,7 +20,7 @@ source $(dirname $0)/common.source usage () { - echo "# usage: ./rename.sh component-directory (tag/branch current-tag new-tag)" + echo "# usage: ./rename.sh component-directory (tag/branch current-name new-name)" exit 1 } diff --git a/switchto.sh b/switchto.sh index 0bfcec2..076f7ed 100755 --- a/switchto.sh +++ b/switchto.sh @@ -20,7 +20,7 @@ source $(dirname $0)/common.source usage () { - echo "# usage: ./switchto.sh branch-name" + echo "# usage: ./switchto.sh branch-or-tag-name" exit 1 } @@ -35,7 +35,7 @@ do echo "# $component" cd $component sayAndDo git checkout $1 - sayAndDo git submodule foreach --recursive "git checkout $1" + sayAndDo git submodule update --recursive cd .. echo fi