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