|
| 1 | +#!/bin/bash |
| 2 | +function nld { |
| 3 | + [ -d $1 -a ! -L $1 ] && [ -n "$(ls $1)" ] |
| 4 | +} |
| 5 | +function maybemkdir { |
| 6 | + if [ -L $1 ]; then rm $1; fi |
| 7 | + if [ ! -d $1 ]; then mkdir $1; fi |
| 8 | +} |
| 9 | +if ( (nld SpongeForge/SpongeCommon && nld SpongeCommon) \ |
| 10 | + || (nld SpongeForge/SpongeCommon && nld SpongeVanilla/SpongeCommon) \ |
| 11 | + || (nld SpongeCommon && nld SpongeVanilla/SpongeCommon) ) |
| 12 | +then |
| 13 | + echo ERROR: Conflict between SpongeCommon clones. |
| 14 | + echo "Please remove all but one of the following directories (this script will create symbolic links between them for you):" |
| 15 | + if [ -d SpongeCommon ]; then echo - SpongeCommon; fi |
| 16 | + if [ -d SpongeForge/SpongeCommon ]; then echo - SpongeForge/SpongeCommon; fi |
| 17 | + if [ -d SpongeVanilla/SpongeCommon ]; then echo - SpongeVanilla/SpongeCommon; fi |
| 18 | + exit 1 |
| 19 | +fi |
| 20 | + |
| 21 | +if [ ! -d SpongeCommon ] |
| 22 | +then |
| 23 | + if [ -d SpongeForge ] |
| 24 | + then |
| 25 | + mv SpongeForge/SpongeCommon SpongeCommon |
| 26 | + ln -s ../SpongeCommon SpongeForge/SpongeCommon |
| 27 | + elif [ -d SpongeVanilla ] |
| 28 | + then |
| 29 | + mv SpongeVanilla/SpongeCommon SpongeCommon |
| 30 | + ln -s ../SpongeCommon SpongeVanilla/SpongeCommon |
| 31 | + else |
| 32 | + echo Please place a checkout of SpongeForge, SpongeVanilla, or SpongeCommon in the current directory. |
| 33 | + exit 1 |
| 34 | + fi |
| 35 | +fi |
| 36 | + |
| 37 | +if [ ! -d SpongeForge ] |
| 38 | +then |
| 39 | + git checkout https://github.com/SpongePowered/SpongeForge.git |
| 40 | +fi |
| 41 | +cd SpongeForge |
| 42 | +maybemkdir SpongeCommon |
| 43 | +git config --local submodule.SpongeCommon.path ../SpongeCommon |
| 44 | +cd .. |
| 45 | + |
| 46 | +if [ ! -d SpongeVanilla ] |
| 47 | +then |
| 48 | + echo Cloning SpongeVanilla... |
| 49 | + git checkout https://github.com/SpongePowered/SpongeVanilla.git |
| 50 | +fi |
| 51 | +cd SpongeVanilla |
| 52 | +maybemkdir SpongeCommon |
| 53 | +git config --local submodule.SpongeCommon.path ../SpongeCommon |
| 54 | +cd .. |
| 55 | + |
| 56 | +maybemkdir .git/scripts |
| 57 | +ln -sf init .git/scripts/post-checkout |
| 58 | +maybemkdir gradle |
| 59 | +ln -sf ../SpongeCommon/gradle/wrapper gradle/wrapper |
| 60 | +ln -sf SpongeCommon/gradlew gradlew |
| 61 | +ln -sf SpongeCommon/gradlew.bat gradlew.bat |
| 62 | +echo Initialized checkout of all Sponge repositories. |
0 commit comments