language: cpp

os: linux
sudo: false
dist: trusty

env:
  global:
    - DEVKITPRO=/opt/devkitpro
    - DEVKITPPC=/opt/devkitpro/devkitPPC
    - DEVKITARM=/opt/devkitpro/devkitARM
    - PORTLIBREPOS=$HOME/portlibrepos

cache:
  directories:
    - "$HOME/.local"
    - "$PORTLIBREPOS"
    - "$DEVKITPRO"

addons:
  apt:
    packages:
    - p7zip-full

before_install:
  - mkdir -p "${PORTLIBREPOS}"
  - mkdir -p "${DEVKITPRO}"
  - 7z x -y ./loader/libs/portlibs.zip -o${DEVKITPRO}  
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then wget https://github.com/devkitPro/pacman/releases/download/devkitpro-pacman-1.0.1/devkitpro-pacman.deb -O /tmp/devkitpro-pacman.deb; fi
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo dpkg -i /tmp/devkitpro-pacman.deb; fi
  - yes | sudo dkp-pacman -Syu devkitPPC --needed
  - yes | sudo dkp-pacman -Syu devkitARM --needed
  - yes | sudo dkp-pacman -Syu general-tools --needed

install:
  - cd $PORTLIBREPOS
  - ((git clone https://github.com/Maschell/dynamic_libs.git -b lib && (7z x -y ./dynamic_libs/libs/portlibs.zip -o${DEVKITPRO})) || (cd dynamic_libs && git pull))
  - (git clone https://github.com/dimok789/libiosuhax.git || (cd libiosuhax && git pull))
  - (git clone https://github.com/Maschell/libfat.git || (cd libfat && git pull))   
  - (git clone https://github.com/Maschell/libntfs-wiiu.git || (cd libntfs-wiiu && git pull))   
  - (git clone https://github.com/Maschell/libutils.git || (cd libutils && git pull))   
  - ((git clone https://github.com/Maschell/libgui.git && (7z x -y ./libgui/libs/portlibs.zip -o${DEVKITPRO})) || (cd libgui && git pull))
  - (cd dynamic_libs && ((make -j8 | grep -c "built ... ") && make install && echo "installed" ) || (echo "no need for make install" && make))
  - (cd libiosuhax && make -j8 && make install) 
  - (cd libfat && make wiiu-release && make wiiu-install)
  - (cd libntfs-wiiu && make wiiu-install)
  - (cd libutils && ((make -j8 | grep -c "built ... ") && make install && echo "installed" ) || (echo "no need for make install" && make))
  - (cd libgui && ((make -j8 | grep -c "built ... ") && make install) || echo "no need for make install")

before_script:
  - cd $TRAVIS_BUILD_DIR/
  
script:
- make && make install
- (cd loader && make)

before_deploy:
- cd $TRAVIS_BUILD_DIR/
- mkdir -p "wiiu/apps/wiiupluginloader"
- commit="$(git rev-parse --short=7 HEAD)"
- chmod +x gitrev.sh
- versiontag="$(./gitrev.sh)"
- (cd loader && make)
- cp loader/meta/* wiiu/apps/wiiupluginloader
- cp loader/wiiupluginloader.elf wiiu/apps/wiiupluginloader
- zip -r WiiUPluginLoader_$versiontag.zip wiiu
- git config --global user.email "builds@travis-ci.com"
- git config --global user.name "Travis CI"
- export GIT_TAG=WiiUPluginLoader-$versiontag
- commitLog="$(git log -1 --pretty=%B)"
- commitMessage="$(echo -e "-\n" && echo "WiiUPluginLoader nightly build. Not a stable release. Expect bugs!\n Only use the plugins with the bundled loaded as they may not work on others." && echo -e "\nCommitlog:\n")"
- git tag $GIT_TAG -a -m "$commitMessage" -m "$commitLog"
- git push --quiet https://$GITHUBKEY@github.com/Maschell/WiiUPluginSystem $GIT_TAG > /dev/null 2>&1

deploy:
  provider: releases
  skip_cleanup: true
  prerelease: true
  api_key:
    secure: "BdoeihqS+jQGq98cPyF22iCKx68stGSWa3t5ZotLcp8z9EYBODjGLOITbDxm1WsuVbC17dq4ESLogVhLSs1I3Kjfb+oESRTAh6X5tsRpxVWkvpiqk9pkMOQPLq1t1QDAKagm6BtEJ2lkMWD9a0G+Z8d7Fc6BE3TqqTf+DxVsX04ArxA9znLgOtJZxgIbSFhCPGU2PXueiWLcOzLL6u2Bp6FmPcGYOkM3K8BD45+9CjYqv+/SIv7ckJW8KI1CaNOIyrvLGv8VyQ18dAB9DRScB6kIAyInAStwQbvGbU6E+fKSJcdoqGuZIxMgBObo4KIN98pVckMsacXXuEk7BYc9lsdQkB9WhJWfJbmDoXF7Ur4pno/3rGSVD8RC96sCO7mrjKnlbACu4ybvVJvxSq6F4DRG6vpamh03AiiMHaQZG4kOC1CuOA26UG+k0kE9ErlkKa1IcfF/l0G+6UN2Ahx8UNXSu3WJR7IVj6jwVDWKnJnPwKcYjHq7Gn3UnIt+h/j1qN2KuYPZujnuaB/RCHNt0VmHylpmOeQPU4aWHq/KZHj3eSpecSXV9G7Xb9BjbK+cNft+vnmJBqQTyKJG1cWwty38bjJnAwsS249KdBWBowzZmeZoLPvdZaPrLBEfb2+p/ty2aMqKFj66ev/aQBSMkiOnIaVjFzl7UtCutm0FEAo="
  file: WiiUPluginLoader_$versiontag.zip
  on:
    repo: Maschell/WiiUPluginSystem
    tags: false
    all_branches: true