Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions bootstrap-vitasdk.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,6 @@ INSTALLDIR="${VITASDK:-/usr/local/vitasdk}"

. $DIR/include/install-vitasdk.sh

if [ -d "$INSTALLDIR" ]; then
echo "$INSTALLDIR already exists. Remove it first (e.g. 'sudo rm -rf $INSTALLDIR' or 'rm -rf $INSTALLDIR') and then restart this script"
exit 1
fi

echo "==> Installing vitasdk to $INSTALLDIR"
install_vitasdk $INSTALLDIR

Expand Down
55 changes: 48 additions & 7 deletions include/install-vitasdk.sh
Original file line number Diff line number Diff line change
@@ -1,16 +1,46 @@
#!/bin/sh

get_download_link () {
curl "https://api.github.com/repos/vitasdk/autobuilds/releases" | grep "master" | grep "browser_download_url" | grep $1 | head -n 1 | cut -d '"' -f 4
curl -sL "https://api.github.com/repos/vitasdk/autobuilds/releases" | grep "master" | grep "browser_download_url" | grep $1 | head -n 1 | cut -d '"' -f 4
}

need_root_perm () {
curr=$1
while true; do
if [ -d "$curr" ]; then
DIR_INFO=($(stat -Lc "%a %U %G" $curr))
PERM="0${DIR_INFO[0]}"
OWNER=${DIR_INFO[1]}
GROUP=${DIR_INFO[2]}
if [[ $(($PERM & 0200)) != 0 && $USER == $OWNER ]]; then
return
elif [ $(($PERM & 0002)) != 0 ]; then
return
elif [[ $(($PERM & 0020)) != 0 ]]; then
groups=($(groups $USER))
for grp in "${groups[@]}"; do
if [[ $GROUP == $grp ]]; then
return
fi
done
fi
echo 1
return
fi
curr=$(dirname $curr)
done
}

install_vitasdk () {
INSTALLDIR=$1

case "$(uname -s)" in
Darwin*)
if [ -d "$INSTALLDIR" ]; then
rm -rf $INSTALLDIR
fi
mkdir -p $INSTALLDIR
wget -O "vitasdk-nightly.tar.bz2" "$(get_download_link osx)"
curl -o "vitasdk-nightly.tar.bz2" -L "$(get_download_link osx)"
tar xf "vitasdk-nightly.tar.bz2" -C $INSTALLDIR --strip-components=1
rm -f "vitasdk-nightly.tar.bz2"
;;
Expand All @@ -19,19 +49,30 @@ install_vitasdk () {
if [ -n "${TRAVIS}" ]; then
sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 patch
fi
if [ ! -d "$INSTALLDIR" ]; then
sudo mkdir -p $INSTALLDIR
sudo chown $USER:$(id -gn $USER) $INSTALLDIR
SUDO=
if [ ! -z "$(need_root_perm $INSTALLDIR)" ]; then
SUDO=sudo
fi
if [ -d "$INSTALLDIR" ]; then
$SUDO rm -rf $INSTALLDIR
if [ ! -z "$(need_root_perm $INSTALLDIR)" ]; then
SUDO=sudo
fi
fi
wget -O "vitasdk-nightly.tar.bz2" "$(get_download_link linux)"
$SUDO mkdir -p $INSTALLDIR
$SUDO chown $USER:$(id -gn $USER) $INSTALLDIR
curl -o "vitasdk-nightly.tar.bz2" -L "$(get_download_link linux)"
tar xf "vitasdk-nightly.tar.bz2" -C $INSTALLDIR --strip-components=1
rm -f "vitasdk-nightly.tar.bz2"
;;

MSYS*|MINGW64*)
UNIX=false
if [ -d "$INSTALLDIR" ]; then
rm -rf $INSTALLDIR
fi
mkdir -p $INSTALLDIR
wget -O "vitasdk-nightly.tar.bz2" "$(get_download_link mingw32)"
curl -o "vitasdk-nightly.tar.bz2" -L "$(get_download_link mingw32)"
tar xf "vitasdk-nightly.tar.bz2" -C $INSTALLDIR --strip-components=1
rm -f "vitasdk-nightly.tar.bz2"
;;
Expand Down