src-rev-commit: added script to commit src rev changes
BugzID: 74523 Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
This commit is contained in:
parent
73fcaacfab
commit
9b82e098ff
|
|
@ -0,0 +1,130 @@
|
|||
#!/bin/bash
|
||||
|
||||
SCRIPT_PARAMS="$*"
|
||||
SCRIPT_PATHNAME=$(realpath ${0})
|
||||
SCRIPT_NAME=$(basename ${SCRIPT_PATHNAME})
|
||||
SCRIPT_PATH=$(dirname ${SCRIPT_PATHNAME})
|
||||
|
||||
export LOGFILE=/dev/null
|
||||
export BRANCH_NAME=develop
|
||||
export IS_DUMMY=false
|
||||
export IS_VERBOSE=false
|
||||
|
||||
#**********************************************************************************************
|
||||
# local helper functions
|
||||
#**********************************************************************************************
|
||||
#----------------------------------------------------------------------------------------------
|
||||
function printUsage()
|
||||
{
|
||||
echo -e "\nUsage: ${SCRIPT_NAME} [OPTIONS]\n"
|
||||
echo -e ""
|
||||
echo -e " OPTIONS:"
|
||||
echo -e " -b|--branch=BRANCH_NAME commit to branch BRANCH_NAME (default = ${BRANCH_NAME})"
|
||||
echo -e " -d|--dummy-commit display found SRVREVs"
|
||||
echo -e " -l|--log=LOGFILE write some output to LOGFILE (default = $LOGFILE)"
|
||||
echo -e " -h|--help Show this help"
|
||||
echo -e " -v|--verbose Set script to verbose"
|
||||
}
|
||||
#----------------------------------------------------------------------------------------------
|
||||
function logMessage()
|
||||
{
|
||||
local msg="${1}"
|
||||
echo "${msg}" >> $LOGFILE
|
||||
}
|
||||
#----------------------------------------------------------------------------------------------
|
||||
function printMessage()
|
||||
{
|
||||
local msg="${1}"
|
||||
logMessage "${msg}"
|
||||
if [[ "${IS_VERBOSE}" == "false" ]]; then
|
||||
return
|
||||
fi
|
||||
echo "${msg}"
|
||||
}
|
||||
#----------------------------------------------------------------------------------------------
|
||||
function updateLayerToHead() {
|
||||
local layer="${1}"
|
||||
local branch="${2}"
|
||||
|
||||
logMessage "--> checking out branch ${BRNCH_NAME}"
|
||||
git checkout ${BRANCH_NAME} >> $LOGFILE 2>&1
|
||||
logMessage "--> pull changes ${BRANCH_NAME}"
|
||||
git pull >> $LOGFILE 2>&1
|
||||
}
|
||||
|
||||
#**********************************************************************************************
|
||||
# main
|
||||
#**********************************************************************************************
|
||||
O=$(getopt -o hb:l:vd --long help,branch:,log:,verbose,dummy-commit -- "$@") || exit 1
|
||||
if [ $? != 0 ]; then
|
||||
echo "ERROR: Could not parse command line options"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
eval set -- "$O"
|
||||
while true; do
|
||||
case "${1}" in
|
||||
-b|--branch)
|
||||
export BRANCH_NAME="${2}"
|
||||
shift 2
|
||||
;;
|
||||
-v|--verbose)
|
||||
export IS_VERBOSE=true
|
||||
shift
|
||||
;;
|
||||
-d|--dummy-commit)
|
||||
export IS_DUMMY=true
|
||||
shift
|
||||
;;
|
||||
-l|--log)
|
||||
export LOGFILE="${2}"
|
||||
export LOGFILE=$(realpath "${LOGFILE}")
|
||||
shift 2
|
||||
;;
|
||||
-h|--help)
|
||||
export IS_VERBOSE=false
|
||||
printUsage
|
||||
exit 0
|
||||
;;
|
||||
--)
|
||||
shift
|
||||
break
|
||||
;;
|
||||
*)
|
||||
printUsage; exit 0 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
echo "${SCRIPT_NAME} called with ${SCRIPT_PARAMS}" > $LOGFILE
|
||||
|
||||
|
||||
for nmLayer in $(git status | grep "meta-netmodule" | cut -d':' -f2 | sed -e 's/^[ ]*//' | cut -d' ' -f1); do
|
||||
cd $nmLayer
|
||||
nbrChanges=$(git status | grep "modified:" | wc -l)
|
||||
printMessage "${nbrChanges} changes in layer ${nmLayer}"
|
||||
if [[ "${nbrChanges}" != "0" ]]; then
|
||||
logMessage "--> stash the changes first to checkout branch head..."
|
||||
git stash save >> $LOGFILE 2>&1
|
||||
updateLayerToHead "${nmLayer}" "${BRANCH_NAME}"
|
||||
logMessage "--> get changes back from stash..."
|
||||
git stash pop >> $LOGFILE 2>&1
|
||||
logMessage "--> adding tracked and changed files"
|
||||
git add -u >> $LOGFILE 2>&1
|
||||
printMessage "--> committing and pushing..."
|
||||
commitMsg="${nmLayer}: updated source revisions"
|
||||
if [[ "${IS_DUMMY}" == "true" ]]; then
|
||||
printMessage " dummy commit: msg='${commitMsg}', content:"
|
||||
git status | grep "modified" >> $LOGFILE 2>&1
|
||||
# revert changes to simulate a commit :-P
|
||||
git reset HEAD * > /dev/null
|
||||
git checkout * > /dev/null
|
||||
else
|
||||
git commit -m "${commitMsg}" >> $LOGFILE 2>&1
|
||||
git push >> $LOGFILE 2>&1
|
||||
fi
|
||||
printMessage "----------"
|
||||
fi
|
||||
cd ..
|
||||
done
|
||||
|
||||
exit 0
|
||||
Loading…
Reference in New Issue