Created
February 23, 2012 22:20
-
-
Save mrdaemon/1895362 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
PROJECTS=$(pwd)/_VisualStudio2005/Projects | |
WEBROOTS=$(pwd)/_VisualStudio2005/WebSites | |
function die { | |
echo $1 ; exit 1 | |
} | |
[[ -z $1 ]] && die "usage: import.sh [svn url]" | |
REPOS=$1 | |
for d in $PROJECTS/* ; do | |
project=$(basename $d) | |
echo "Processing $project:" | |
echo -n " * Creating directory structure ... " | |
wspace=work/$project | |
mkdir -p $wspace/{trunk,branches,tags} \ | |
|| die "Unable to create directory structure." | |
echo "Done." | |
echo -n " * Copying files to 'trunk'... " | |
cp -R $d/* $wspace/trunk || die "Failed to copy files to ${wspace}." | |
echo "Done." | |
pushd $wspace/trunk 2>&1 > /dev/null || die "Failed to enter working tree." | |
if [[ -d $project ]] ; then | |
echo -n "Full project. Stripping binaries and option files..." | |
rm -f *.suo | |
rm -r $project/bin $project/obj | |
echo "Done." | |
else | |
echo "Solution only! Fixing hierarchy wherever possible:" | |
echo -n " - Checking project for webroot ... " | |
if grep '..\\..\\WebSites\\' ${project}.sln > /dev/null 2>&1 ; then | |
echo "Found!" | |
if [[ -d $WEBROOTS/$project ]] ; then | |
echo -n " - Copying webroot files to $wspace/trunk/web" | |
cp -R $WEBROOTS/$project web/ \ | |
|| die "Unable to copy webroot!" | |
echo "Done." | |
echo -n " - Editing solution file(s) ... " | |
sed -i .bak \ | |
-e 's/..\\..\\WebSites\\\(.*\)\\/web\\/g' $project.sln | |
echo "Done." | |
echo " (backup exists in case of horrors)" | |
else | |
die "No directory at $WEBROOTS/$project" | |
fi | |
else | |
echo -n -e "\n" | |
echo "Project hasn't got a webroot somehow. Please verify." | |
echo "Importing project as is (without known binaries)" | |
rm -f *.suo | |
rm -r bin obj | |
fi | |
fi | |
popd > /dev/null | |
echo " * Importing workspace tree into subversion" | |
pushd $wspace > /dev/null | |
svn import -m "Initial import of $project" $REPOS/$project | |
SVNS=$? | |
popd > /dev/null | |
[[ $SVNS -eq 0 ]] || die "Failed to import! Review output." | |
echo "Done." | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment