poikilos
5 years ago
1 changed files with 64 additions and 0 deletions
@ -0,0 +1,64 @@ |
|||
#!/bin/bash |
|||
|
|||
customExit() { |
|||
errorCode=1 |
|||
if [ ! -z "$2" ]; then |
|||
errorCode="$2" |
|||
fi |
|||
echo |
|||
echo "ERROR:" |
|||
echo "$1" |
|||
echo |
|||
echo |
|||
exit $errorCode |
|||
} |
|||
|
|||
countDown(){ |
|||
echo "Press Ctrl-C to cancel..." |
|||
echo "3..." |
|||
sleep 1 |
|||
echo "2..." |
|||
sleep 1 |
|||
echo "1..." |
|||
sleep 1 |
|||
} |
|||
|
|||
echo "This will DELETE ~/minetest/games/minimal and remake it!" |
|||
countDown |
|||
#> You'll need minimum git 1.9 for this to work. Tested it myself only with 2.2.0 and 2.2.2. |
|||
#-<https://stackoverflow.com/questions/600079/how-do-i-clone-a-subdirectory-only-of-a-git-repository/52269934#52269934> |
|||
REPO_URL=https://github.com/minetest/minetest |
|||
# REPO_URL=http://git.minetest.org:3000/minetest/minetest.git |
|||
DEST_REPO=~/Downloads/git/minetest_minimal |
|||
DEST_GAMES=~/minetest/games |
|||
if [ ! -d $DEST_GAMES ]; then |
|||
echo "ERROR: You must first install Minetest and have the $DEST_GAMES directory." |
|||
exit 1 |
|||
fi |
|||
if [ -e $DEST_GAMES/minimal ]; then |
|||
rm $DEST_GAMES/minimal || customExit "$DEST_GAMES/minimal should be either a symlink to $DEST_REPO/games/minimal or not present, but right now it is a directory. Move or delete it then try this script again." |
|||
fi |
|||
|
|||
if [ ! -d "$DEST_REPO" ]; then |
|||
mkdir -p ~/Downloads/git \ |
|||
&& git init "$DEST_REPO" \ |
|||
&& cd "$DEST_REPO" \ |
|||
&& git remote add origin $REPO_URL \ |
|||
&& git config core.sparsecheckout true \ |
|||
&& echo "games/minimal/*" >> .git/info/sparse-checkout \ |
|||
&& git pull origin master |
|||
if [ ! -d "$DEST_REPO" ]; then |
|||
echo "ERROR: Cloning $REPO_URL did not result in $DEST_REPO." |
|||
exit 1 |
|||
fi |
|||
else |
|||
cd "$DEST_REPO" || customExit "cd \"$DEST_REPO\" failed." |
|||
echo "Updating $DEST_REPO..." |
|||
git pull origin master || echo "WARNING: git pull failed in `pwd`." |
|||
if [ ! -d "$DEST_REPO/games/minimal" ]; then |
|||
customExit "$DEST_REPO/games/minimal is missing." |
|||
fi |
|||
fi |
|||
# && rm -Rf $DEST_REPO |
|||
# && git pull --depth=1 origin master |
|||
ln -s "$DEST_REPO/games/minimal" "$DEST_GAMES/" |
Loading…
Reference in new issue