@@ -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}
3439EOF
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}
4451function _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()
361377function _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