From 99cb5c5c05d67a8372dc6694d0821822c781b868 Mon Sep 17 00:00:00 2001 From: Michael Iedema Date: Tue, 25 Mar 2014 14:33:08 +0100 Subject: [PATCH] - refactor REPOS list and shared functions into a common include - add new repos - add delete script to remove tags (branches todo) - add auto-confirm flag to apt-get installs in build.sh (closes #2) --- .gitignore | 4 +++ build.sh | 11 ++----- clone.sh | 11 ++----- common.source | 41 ++++++++++++++++++++++++++ delete.sh | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++ pull.sh | 11 ++----- rename.sh | 9 +----- state.sh | 11 ++----- switchto.sh | 11 ++----- 9 files changed, 137 insertions(+), 53 deletions(-) create mode 100644 common.source create mode 100755 delete.sh diff --git a/.gitignore b/.gitignore index d63c121..4ee92d6 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,7 @@ RRLP smqueue sqlite3 subscriberRegistry +asterisk-config +asterisk +libsqliteodbc +system-config diff --git a/build.sh b/build.sh index 113909a..3fdfba5 100755 --- a/build.sh +++ b/build.sh @@ -17,20 +17,13 @@ # See the COPYING file in the main directory for details. # -sayAndDo () { - echo $@ - eval $@ - if [ $? -ne 0 ]; then - echo "# ERROR: command failed!" - exit 1 - fi -} +source $(dirname $0)/common.source installIfMissing () { dpkg -s $@ > /dev/null if [ $? -ne 0 ]; then echo "# - missing $@, installing dependency" - sudo apt-get install $@ + sudo apt-get install $@ -y fi } diff --git a/clone.sh b/clone.sh index cbdd48a..4a7b157 100755 --- a/clone.sh +++ b/clone.sh @@ -17,16 +17,9 @@ # See the COPYING file in the main directory for details. # -sayAndDo () { - echo $@ - eval $@ - if [ $? -ne 0 ]; then - echo "# ERROR: command failed!" - exit 1 - fi -} +source $(dirname $0)/common.source -for component in a53 CommonLibs libzmq NodeManager openbts RRLP smqueue sqlite3 subscriberRegistry +for component in $REPOS do if [ ! -d $component ]; then echo "# cloning $component" diff --git a/common.source b/common.source new file mode 100644 index 0000000..bffcfe4 --- /dev/null +++ b/common.source @@ -0,0 +1,41 @@ +# +# 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. +# + +sayAndDo () { + echo $@ + eval $@ + if [ $? -ne 0 ]; then + echo "# ERROR: command failed!" + exit 1 + fi +} + +REPOS="\ + a53 \ + asterisk \ + asterisk-config \ + CommonLibs \ + libsqliteodbc \ + libzmq NodeManager \ + openbts \ + RRLP \ + smqueue \ + sqlite3 \ + subscriberRegistry \ + system-config \ + " diff --git a/delete.sh b/delete.sh new file mode 100755 index 0000000..c746e4b --- /dev/null +++ b/delete.sh @@ -0,0 +1,81 @@ +#!/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: ./delete.sh component-directory (tag/branch current-tag new-tag)" + 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 deleting a tag or branch? +if [ -z "$2" ]; then + read -r -p "# Do you want to delete a tag or branch? " TYPE +elif [ $2 == "tag" ]; then + TYPE="tag" +elif [ $2 == "branch" ]; then + TYPE="branch" +else + usage +fi + +# Which one should be deleted? +if [ -z "$3" ]; then + echo "# Here are the valid choices for that component:" + cd $COMPONENT + if [ $TYPE == "tag" ]; then + git tag + elif [ $TYPE == "branch" ]; then + git branch -a + fi + cd .. + read -r -p "# Which $TYPE would you like to delete? " NAME +else + NAME=$3 +fi + +# Really, truly? Alrighty, execute. +read -r -p "# To delete $TYPE $NAME, answer \"yes\" " ANSWER +if [ $ANSWER == "yes" ]; then + cd $COMPONENT + if [ $TYPE == "tag" ]; then + echo "# - deleting..." + sayAndDo git tag -d $NAME + echo "# - pushing to origin..." + sayAndDo git push origin :refs/tags/$NAME + elif [ $TYPE == "branch" ]; then + echo "# - Sorry, branch deletes haven't been tested. Bailing." + exit 1 + #echo "# - deleting..." + #sayAndDo git branch -d $NAME + #echo "# - pushing to origin..." + #sayAndDo git push origin :$NAME + fi +else + echo "# - better safe than sorry, cancelling..." +fi diff --git a/pull.sh b/pull.sh index b58e357..10460b7 100755 --- a/pull.sh +++ b/pull.sh @@ -17,16 +17,9 @@ # See the COPYING file in the main directory for details. # -sayAndDo () { - echo $@ - eval $@ - if [ $? -ne 0 ]; then - echo "# ERROR: command failed!" - exit 1 - fi -} +source $(dirname $0)/common.source -for component in a53 CommonLibs libzmq NodeManager openbts RRLP smqueue sqlite3 subscriberRegistry +for component in $REPOS do if [ -d $component ]; then echo "# pulling $component" diff --git a/rename.sh b/rename.sh index 9274fdf..aa5b85c 100755 --- a/rename.sh +++ b/rename.sh @@ -17,14 +17,7 @@ # See the COPYING file in the main directory for details. # -sayAndDo () { - echo $@ - eval $@ - if [ $? -ne 0 ]; then - echo "# ERROR: command failed!" - exit 1 - fi -} +source $(dirname $0)/common.source usage () { echo "# usage: ./rename.sh component-directory (tag/branch current-tag new-tag)" diff --git a/state.sh b/state.sh index 01e515f..5be2172 100755 --- a/state.sh +++ b/state.sh @@ -17,14 +17,7 @@ # See the COPYING file in the main directory for details. # -sayAndDo () { - echo $@ - eval $@ - if [ $? -ne 0 ]; then - echo "# ERROR: command failed!" - exit 1 - fi -} +source $(dirname $0)/common.source usage () { echo "# usage: ./state.sh (branches, tags)" @@ -41,7 +34,7 @@ else usage fi -for component in a53 CommonLibs libzmq NodeManager openbts RRLP smqueue sqlite3 subscriberRegistry +for component in $REPOS do if [ -d $component ]; then echo "########################################################################" diff --git a/switchto.sh b/switchto.sh index 3f1aa83..0bfcec2 100755 --- a/switchto.sh +++ b/switchto.sh @@ -17,14 +17,7 @@ # See the COPYING file in the main directory for details. # -sayAndDo () { - echo $@ - eval $@ - if [ $? -ne 0 ]; then - echo "# ERROR: command failed!" - exit 1 - fi -} +source $(dirname $0)/common.source usage () { echo "# usage: ./switchto.sh branch-name" @@ -35,7 +28,7 @@ if [ -z "$1" ]; then usage fi -for component in a53 CommonLibs libzmq NodeManager openbts RRLP smqueue sqlite3 subscriberRegistry +for component in $REPOS do if [ -d $component ]; then echo "########################################################################"