language: c
sudo: false

os:
  - linux

env:
  global:
    - DEVKITPRO=$HOME/devkitPro
    - PORTLIBREPOS=$HOME/portlibrepos
    - DEVKITPPC=${DEVKITPRO}/devkitPPC
    - DEVKITARM=${DEVKITPRO}/devkitARM
    
cache:
  apt: true
  directories:
  - "/home/travis/devkitPro"
  - "/home/travis/portlibrepos"

before_cache:
- rm -rf $DEVKITPRO/*.7z
- rm -rf $DEVKITPRO/*.bz2
- rm -rf $DEVKITPRO/examples

addons:
  apt:
    packages:
    - p7zip-full

before_install:
  - mkdir -p "${DEVKITPRO}"
  - mkdir -p "${PORTLIBREPOS}"
  - 7z x -y ./loader/libs/portlibs.zip -o${DEVKITPRO}  
  - main_cwd=$(pwd)
  - cd $DEVKITPRO
  - wget https://github.com/devkitPro/installer/releases/download/v2.1.0/devkitPPCupdate.pl -O devkitPPCupdate.pl
  - wget https://github.com/devkitPro/installer/releases/download/v2.1.0/devkitARMupdate.pl -O devkitARMupdate.pl

install:  
  - cd $DEVKITPRO
  - perl devkitPPCupdate.pl
  - perl devkitARMupdate.pl
  - 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/aliaspider/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))   
  - (git clone https://github.com/Maschell/fs_wrapper.git || (cd fs_wrapper && git pull))  
  - (git clone https://github.com/Maschell/controller_patcher.git || (cd controller_patcher && 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")
  - (cd fs_wrapper && ((make -j8 | grep -c "built ... ") && make install && echo "installed" ) || (echo "no need for make install" && make))
  - (cd controller_patcher && ((make -j8 | grep -c "built ... ") && make install && echo "installed" ) || (echo "no need for make install" && make))

script:
- cd $main_cwd
- make && make install
- (cd loader && make)
- (cd plugins && make)

before_deploy:
- cd $main_cwd
- mkdir -p "wiiu/apps/wiiupluginloader"
- mkdir -p "wiiu/plugins"
- commit="$(git rev-parse --short=7 HEAD)"
- chmod +x gitrev.sh
- versiontag="$(./gitrev.sh)"
- (cd loader && make)
- find plugins -type f -name "*.mod" | xargs -i cp {} wiiu/plugins
- 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