Skip to content

Commit 67c9611

Browse files
author
Jared Murrell
authored
updated retry output
The _retry_ output appeared to be a non-responsive loop due to the fact that the lines never cleared and it re-prompted the same sentence over the last. This fix addresses that, but the progress bar will be reset and start at the current revision, leaving a partially filled progress bar
1 parent c47ff29 commit 67c9611

1 file changed

Lines changed: 48 additions & 32 deletions

File tree

_functions.sh

Lines changed: 48 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ function _setup()
55
## If we have a settings file, use it to bypass input
66
INC_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)"
77
[[ -f ${INC_DIR}/settings.ini ]] && source ${INC_DIR}/settings.ini
8-
8+
rm -f /tmp/{submodules,github_remotes}.txt
99
## If there's no settings file, ask for input
1010
## This can be stored your the environment as well
1111
while [ -z ${REPOSITORY} ];do
@@ -26,16 +26,23 @@ function _setup()
2626
echo ""
2727
done
2828
[[ ! -z ${AUTHORS_FILE} ]] && AUTHORS=" --authors-file=${AUTHORS_FILE}"
29-
machine=$(echo ${GITHUB_URL}|awk -F'//' {'print $2'})
29+
github_machine=$(echo ${GITHUB_URL}|awk -F'//' {'print $2'})
30+
svn_machine=$(echo ${REPOSITORY}|awk -F'/' {'print $3'})
3031
cat > ~/.netrc <<EOF
31-
machine ${machine}
32-
login token
33-
password ${GITHUB_TOKEN}
32+
machine ${github_machine}
33+
login token
34+
password ${GITHUB_TOKEN}
35+
36+
machine ${svn_machine}
37+
login ${SVN_USERNAME}
38+
password ${SVN_PASSWORD}
3439
EOF
40+
## Set our default SVN options
41+
SVN_OPTIONS="--trust-server-cert --non-interactive --no-auth-cache --username ${SVN_USERNAME} --password ${SVN_PASSWORD}"
3542
## Get the repo name and full URL for the remote subversion repository
36-
REPO_NAME=$(svn info ${REPOSITORY}|grep '^Path'|awk {'print $2'}|sed 's/ /-/g')
37-
REPO_URL=$(svn info ${REPOSITORY}|grep '^URL'|awk {'print $2'})
38-
SVN_HEAD=$(svn info ${REPOSITORY}|grep '^Revision'|awk {'print $2'})
43+
REPO_NAME=$(svn info ${REPOSITORY} ${SVN_OPTIONS}|grep '^Path'|awk {'print $2'}|sed 's/ /-/g')
44+
REPO_URL=$(svn info ${REPOSITORY} ${SVN_OPTIONS}|grep '^URL'|awk {'print $2'})
45+
SVN_HEAD=$(svn info ${REPOSITORY} ${SVN_OPTIONS}|grep '^Revision'|awk {'print $2'})
3946
## Set the log file, if we don't have an explicit file configured
4047
[[ -z ${LOG_FILE} ]] && LOG_FILE=/tmp/svn2github-${REPO_NAME}.log
4148
}
@@ -44,7 +51,7 @@ EOF
4451
function _svn_sizer()
4552
{
4653
_print_banner "Discovering repository size"
47-
svn list -vR ${REPO_URL}|awk '{if ($3 !="") sum+=$3; i++} END {print "\nTotal Size: " sum/1024000" MB" "\nNumber of Files: " i/1000 " K"}'
54+
svn list ${SVN_OPTIONS} -vR ${REPO_URL}|awk '{if ($3 !="") sum+=$3; i++} END {print "\nTotal Size: " sum/1024000" MB" "\nNumber of Files: " i/1000 " K"}'
4855
}
4956

5057
## Format a banner
@@ -139,11 +146,11 @@ function _discover_submodules()
139146
clear
140147
echo "Discovering potential submodule candidates..."
141148
# Get the potential list of submodules, with branches, tags and trunk
142-
svn -R list ${REPO_URL}|grep -E '(/trunk/$|/branches/$|/tags/$)' > /tmp/submodules.txt
149+
svn -R list ${REPO_URL} ${SVN_OPTIONS}|grep -E '(/trunk/$|/branches/$|/tags/$)' > /tmp/submodules.txt
143150
# Remove empty "trunk", "tags" and "branches" from the list of potentials
144151
for DIR in $(cat submodules.txt);
145152
do
146-
FILES=$(svn list ${REPO_URL}/${DIR})
153+
FILES=$(svn list ${REPO_URL}/${DIR} ${SVN_OPTIONS})
147154
if [[ ${#FILES} -le 1 ]]
148155
then
149156
sed -i "s/${DIR}/d" /tmp/submodules.txt
@@ -189,7 +196,6 @@ function _discover_submodules()
189196
done
190197
echo "$ERROR"
191198
}
192-
193199
#Menu loop
194200
while MENU && read -e -p "Select the desired options using their number (again to uncheck, ENTER when done): " -n1 SELECTION && [[ -n "${SELECTION}" ]]; do
195201
clear
@@ -213,12 +219,12 @@ function _get_svn_layout()
213219
{
214220
unset FLAGS
215221
echo "Analyzing repository layout..."
216-
TAGS=$(svn ls ${REPO_URL}|grep '^tags/$'|awk -F'/' {'print $(NF-1)'})
217-
BRANCHES=$(svn ls ${REPO_URL}|grep '^branches/$'|awk -F'/' {'print $(NF-1)'})
218-
TRUNK=$(svn ls ${REPO_URL}|grep '^trunk/$'|awk -F'/' {'print $(NF-1)'})
219-
ROOT_FILES=$(svn ls ${REPO_URL}|grep -Ev '(^tags/$|^trunk/$|^branches/$)')
220-
[[ ! -z ${BRANCHES} ]] && [[ ! -z $(svn ls ${REPO_URL}/branches) ]] && FLAGS+=" --branches=branches"
221-
[[ ! -z ${TAGS} ]] && [[ ! -z $(svn ls ${REPO_URL}/tags) ]] && FLAGS+=" --tags=tags"
222+
TAGS=$(svn ls ${REPO_URL} ${SVN_OPTIONS}|grep '^tags/$'|awk -F'/' {'print $(NF-1)'})
223+
BRANCHES=$(svn ls ${REPO_URL} ${SVN_OPTIONS}|grep '^branches/$'|awk -F'/' {'print $(NF-1)'})
224+
TRUNK=$(svn ls ${REPO_URL} ${SVN_OPTIONS}|grep '^trunk/$'|awk -F'/' {'print $(NF-1)'})
225+
ROOT_FILES=$(svn ls ${REPO_URL} ${SVN_OPTIONS}|grep -Ev '(^tags/$|^trunk/$|^branches/$)')
226+
[[ ! -z ${BRANCHES} ]] && [[ ! -z $(svn ls ${REPO_URL}/branches ${SVN_OPTIONS}) ]] && FLAGS+=" --branches=branches"
227+
[[ ! -z ${TAGS} ]] && [[ ! -z $(svn ls ${REPO_URL}/tags ${SVN_OPTIONS}) ]] && FLAGS+=" --tags=tags"
222228
if [[ ! -z ${TRUNK} ]] && [[ ! -z ${ROOT_FILES} ]]
223229
then
224230
clear
@@ -235,7 +241,7 @@ function _get_svn_layout()
235241
read -n 1 -s -r -p "Press any key to continue, CTRL+C to exit..."
236242
echo ""
237243
FLAGS+=" --trunk=/"
238-
elif [[ ! -z ${TRUNK} ]] && [[ ! -z $(svn ls ${REPO_URL}/trunk) ]]
244+
elif [[ ! -z ${TRUNK} ]] && [[ ! -z $(svn ls ${REPO_URL}/trunk ${SVN_OPTIONS}) ]]
239245
then
240246
[[ -z ${ROOT_FILES} ]] && FLAGS+=" --trunk=trunk"
241247
fi
@@ -250,7 +256,7 @@ function _process_submodules()
250256
REPO_URL=${REPOSITORY}/${SUBMODULE}
251257
REPO_NAME=$(echo ${SUBMODULE}|awk -F'/' {'print $(NF-1)'})
252258
GITHUB_REMOTE=${GITHUB_URL}/${GITHUB_ORG}/${REPO_NAME}.git
253-
REV_LIST=$(svn log ${REPO_URL}|grep ^r[0-9]|awk {'print $1'}|sed 's/r//'|sort)
259+
REV_LIST=$(svn log ${REPO_URL} ${SVN_OPTIONS}|grep ^r[0-9]|awk {'print $1'}|sed 's/r//'|sort)
254260
echo "${SUBMODULE},${GITHUB_REMOTE}" >> /tmp/github_remotes.txt
255261
_get_svn_layout
256262
_prepare_github
@@ -284,23 +290,23 @@ function _git_svn_clone()
284290
(
285291
cd ${REPO_NAME}
286292
#REV=0
287-
REV_LIST=$(svn log ${REPO_URL}|grep ^r[0-9]|awk {'print $1'}|sed 's/r//'|sort -g)
293+
REV_LIST=$(svn log ${REPO_URL} ${SVN_OPTIONS}|grep ^r[0-9]|awk {'print $1'}|sed 's/r//'|sort -g)
288294
REV_COUNT=$(echo ${REV_LIST}|wc -w)
289295
REV_HEAD=$(echo ${REV_LIST}|awk {'print $NF'})
290296
## Setup the progress bar
291-
clear
292-
HIDECURSOR
293-
echo -e "" && echo -e ""
294-
DRAW
295-
echo -e " CLONING ${REPO_NAME^^}"
296-
echo -e " lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk"
297-
echo -e " x x"
298-
echo -e " mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj"
299-
WRITE
300297
OLD_REV=0
301298
# Start Script
302299
for REV in ${REV_LIST}
303300
do
301+
clear
302+
HIDECURSOR
303+
echo -e "" && echo -e ""
304+
DRAW
305+
echo -e " CLONING ${REPO_NAME^^}: REV ${REV}"
306+
echo -e " lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk"
307+
echo -e " x x"
308+
echo -e " mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj"
309+
WRITE
304310
## Fill in the gaps of the progress bar
305311
if [[ $((${REV} - ${OLD_REV} )) -gt 1 ]]
306312
then
@@ -323,10 +329,20 @@ function _git_svn_clone()
323329
echo 'Please type "yes" or "no"'
324330
read -p "Would you like to attempt revision ${REV} again? (yes/no) " RETRY
325331
done
326-
if [[ "${RETRY}" == "no" ]]
332+
if [[ "${RETRY,,}" == "no" ]]
327333
then
328334
RESULT=0
329335
else
336+
clear
337+
echo "Retrying revision ${REV}..."
338+
HIDECURSOR
339+
echo -e "" && echo -e ""
340+
DRAW
341+
echo -e " CLONING ${REPO_NAME^^}: REV ${REV}"
342+
echo -e " lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk"
343+
echo -e " x x"
344+
echo -e " mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj"
345+
WRITE
330346
showBar ${REV} ${REV_HEAD}
331347
git svn fetch -qr${REV} ${AUTHORS} &>> ${LOG_FILE} > /dev/null
332348
RESULT=$?
@@ -361,7 +377,7 @@ function _initialize_lfs()
361377
function _add_git_submodules()
362378
{
363379
(
364-
REPO_NAME=$(svn info ${REPOSITORY}|grep '^Path'|awk {'print $2'}|sed 's/ /-/g')
380+
REPO_NAME=$(svn info ${REPOSITORY} ${SVN_OPTIONS}|grep '^Path'|awk {'print $2'}|sed 's/ /-/g')
365381
[[ $(pwd|awk -F'/' {'print $NF'}) != ${REPO_NAME} ]] && cd ${REPO_NAME}
366382
for SUBMODULE in $(cat /tmp/github_remotes.txt)
367383
do

0 commit comments

Comments
 (0)