#!/bin/sh

fd="Eurolite"
cfg="eurolite.cfg"
lp="Led Pc Control 512"
lpapp=$lp".app"
pro="Pro Control DMX 1024"
proapp=$pro".app"

# Clean up
sudo rm -r /Applications/"$fd"/"$lpapp"
sudo rm /Users/"$USER"/Desktop/"$lp"

sudo rm -r /Applications/"$fd"/"$proapp"
sudo rm /Users/"$USER"/Desktop/"$pro"

sudo rm -r /Applications/"$fd"/"Wi-Light Mac.app"

sudo rm -r /Applications/"$fd"/"3D.app"

# Install dir
datafd=$fd"PackageData"

sudo mkdir /Applications/"$fd"
sudo cp -Rf /Applications/"$datafd"/* /Applications/"$fd"
sudo rm -r /Applications/"$datafd"

# Dependencies
cd /usr
sudo mkdir local
cd local
sudo mkdir lib
sudo mkdir Cellar

# faac
cd /usr/local/Cellar
sudo mkdir faac
cd faac
sudo mkdir 1.28
cd 1.28
sudo mkdir lib

sudo rm /usr/local/lib/libfaac.*
sudo rm /usr/local/Cellar/faac/1.28/lib/libfaac.*

sudo cp /Applications/"$fd"/ffmpeg/Cellar/faac/* /usr/local/Cellar/faac/1.28/lib

sudo ln -sf /usr/local/Cellar/faac/1.28/lib/libfaac.0.0.0.dylib /usr/local/lib/libfaac.0.0.0.dylib
sudo ln -sf /usr/local/Cellar/faac/1.28/lib/libfaac.0.0.0.dylib /usr/local/Cellar/faac/1.28/lib/libfaac.0.dylib
sudo ln -sf /usr/local/Cellar/faac/1.28/lib/libfaac.0.0.0.dylib /usr/local/lib/libfaac.0.dylib
sudo ln -sf /usr/local/Cellar/faac/1.28/lib/libfaac.0.0.0.dylib /usr/local/Cellar/faac/1.28/lib/libfaac.dylib
sudo ln -sf /usr/local/Cellar/faac/1.28/lib/libfaac.0.0.0.dylib /usr/local/lib/libfaac.dylib

# ffmpeg
cd /usr/local/Cellar
sudo mkdir ffmpeg
cd ffmpeg
sudo mkdir 2.1.3
cd 2.1.3
sudo mkdir lib

sudo rm /usr/local/lib/libavcodec.*
sudo rm /usr/local/Cellar/ffmpeg/2.1.3/lib/libavcodec.*
sudo rm /usr/local/lib/libavdevice.*
sudo rm /usr/local/Cellar/ffmpeg/2.1.3/lib/libavdevice.*
sudo rm /usr/local/lib/libavfilter.*
sudo rm /usr/local/Cellar/ffmpeg/2.1.3/lib/libavfilter.*
sudo rm /usr/local/lib/libavformat.*
sudo rm /usr/local/Cellar/ffmpeg/2.1.3/lib/libavformat.*
sudo rm /usr/local/lib/libavresample.*
sudo rm /usr/local/Cellar/ffmpeg/2.1.3/lib/libavresample.*
sudo rm /usr/local/lib/libavutil.*
sudo rm /usr/local/Cellar/ffmpeg/2.1.3/lib/libavutil.*
sudo rm /usr/local/lib/libpostproc.*
sudo rm /usr/local/Cellar/ffmpeg/2.1.3/lib/libpostproc.*
sudo rm /usr/local/lib/libswresample.*
sudo rm /usr/local/Cellar/ffmpeg/2.1.3/lib/libswresample.*
sudo rm /usr/local/lib/libswscale.*
sudo rm /usr/local/Cellar/ffmpeg/2.1.3/lib/libswscale.*

sudo cp /Applications/"$fd"/ffmpeg/Cellar/ffmpeg/* /usr/local/Cellar/ffmpeg/2.1.3/lib

sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavcodec.55.39.101.dylib /usr/local/lib/libavcodec.55.39.101.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavcodec.55.39.101.dylib /usr/local/Cellar/ffmpeg/2.1.3/lib/libavcodec.55.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavcodec.55.39.101.dylib /usr/local/lib/libavcodec.55.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavcodec.55.39.101.dylib /usr/local/Cellar/ffmpeg/2.1.3/lib/libavcodec.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavcodec.55.39.101.dylib /usr/local/lib/libavcodec.dylib

sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavdevice.55.5.100.dylib /usr/local/lib/libavdevice.55.5.100.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavdevice.55.5.100.dylib /usr/local/Cellar/ffmpeg/2.1.3/lib/libavdevice.55.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavdevice.55.5.100.dylib /usr/local/lib/libavdevice.55.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavdevice.55.5.100.dylib /usr/local/Cellar/ffmpeg/2.1.3/lib/libavdevice.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavdevice.55.5.100.dylib /usr/local/lib/libavdevice.dylib

sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavfilter.3.90.100.dylib /usr/local/lib/libavfilter.3.90.100.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavfilter.3.90.100.dylib /usr/local/Cellar/ffmpeg/2.1.3/lib/libavfilter.3.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavfilter.3.90.100.dylib /usr/local/lib/libavfilter.3.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavfilter.3.90.100.dylib /usr/local/Cellar/ffmpeg/2.1.3/lib/libavfilter.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavfilter.3.90.100.dylib /usr/local/lib/libavfilter.dylib

sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavformat.55.19.104.dylib /usr/local/lib/libavformat.55.19.104.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavformat.55.19.104.dylib /usr/local/Cellar/ffmpeg/2.1.3/lib/libavformat.55.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavformat.55.19.104.dylib /usr/local/lib/libavformat.55.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavformat.55.19.104.dylib /usr/local/Cellar/ffmpeg/2.1.3/lib/libavformat.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavformat.55.19.104.dylib /usr/local/lib/libavformat.dylib

sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavresample.1.1.0.dylib /usr/local/lib/libavresample.1.1.0.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavresample.1.1.0.dylib /usr/local/Cellar/ffmpeg/2.1.3/lib/libavresample.1.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavresample.1.1.0.dylib /usr/local/lib/libavresample.1.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavresample.1.1.0.dylib /usr/local/Cellar/ffmpeg/2.1.3/lib/libavresample.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavresample.1.1.0.dylib /usr/local/lib/libavresample.dylib

sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavutil.52.48.101.dylib /usr/local/lib/libavutil.52.48.101.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavutil.52.48.101.dylib /usr/local/Cellar/ffmpeg/2.1.3/lib/libavutil.52.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavutil.52.48.101.dylib /usr/local/lib/libavutil.52.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavutil.52.48.101.dylib /usr/local/Cellar/ffmpeg/2.1.3/lib/libavutil.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libavutil.52.48.101.dylib /usr/local/lib/libavutil.dylib

sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libpostproc.52.3.100.dylib /usr/local/lib/libpostproc.52.3.100.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libpostproc.52.3.100.dylib /usr/local/Cellar/ffmpeg/2.1.3/lib/libpostproc.52.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libpostproc.52.3.100.dylib /usr/local/lib/libpostproc.52.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libpostproc.52.3.100.dylib /usr/local/Cellar/ffmpeg/2.1.3/lib/libpostproc.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libpostproc.52.3.100.dylib /usr/local/lib/libpostproc.dylib

sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libswresample.0.17.104.dylib /usr/local/lib/libswresample.0.17.104.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libswresample.0.17.104.dylib /usr/local/Cellar/ffmpeg/2.1.3/lib/libswresample.0.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libswresample.0.17.104.dylib /usr/local/lib/libswresample.0.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libswresample.0.17.104.dylib /usr/local/Cellar/ffmpeg/2.1.3/lib/libswresample.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libswresample.0.17.104.dylib /usr/local/lib/libswresample.dylib

sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libswscale.2.5.101.dylib /usr/local/lib/libswscale.2.5.101.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libswscale.2.5.101.dylib /usr/local/Cellar/ffmpeg/2.1.3/lib/libswscale.2.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libswscale.2.5.101.dylib /usr/local/lib/libswscale.2.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libswscale.2.5.101.dylib /usr/local/Cellar/ffmpeg/2.1.3/lib/libswscale.dylib
sudo ln -sf /usr/local/Cellar/ffmpeg/2.1.3/lib/libswscale.2.5.101.dylib /usr/local/lib/libswscale.dylib

# lame
cd /usr/local/Cellar
sudo mkdir lame
cd lame
sudo mkdir 3.99.5
cd 3.99.5
sudo mkdir lib

sudo rm /usr/local/lib/libmp3lame.*
sudo rm /usr/local/Cellar/ffmpeg/2.1.3/lib/libmp3lame.*

sudo cp /Applications/"$fd"/ffmpeg/Cellar/lame/* /usr/local/Cellar/lame/3.99.5/lib

sudo ln -sf /usr/local/Cellar/lame/3.99.5/lib/libmp3lame.0.dylib /usr/local/lib/libmp3lame.0.dylib
sudo ln -sf /usr/local/Cellar/lame/3.99.5/lib/libmp3lame.0.dylib /usr/local/Cellar/lame/3.99.5/lib/libmp3lame.dylib
sudo ln -sf /usr/local/Cellar/lame/3.99.5/lib/libmp3lame.0.dylib /usr/local/lib/libmp3lame.dylib

# openssl
cd /usr/local/Cellar
sudo mkdir openssl
cd openssl
sudo mkdir 1.0.1f
cd 1.0.1f
sudo mkdir lib
cd lib
sudo mkdir engines

cd engines
sudo rm *
sudo rm /usr/local/lib/libcrypto.*
sudo rm /usr/local/Cellar/openssl/1.0.1f/lib/libcrypto.*
sudo rm /usr/local/lib/libssl.*
sudo rm /usr/local/Cellar/openssl/1.0.1f/lib/libssl.*

sudo cp /Applications/"$fd"/ffmpeg/Cellar/openssl/* /usr/local/Cellar/openssl/1.0.1f/lib
sudo cp /Applications/"$fd"/ffmpeg/Cellar/openssl/engines/* /usr/local/Cellar/openssl/1.0.1f/lib/engines

sudo ln -sf /usr/local/Cellar/openssl/1.0.1f/lib/libcrypto.1.0.0.dylib /usr/local/lib/libcrypto.1.0.0.dylib
sudo ln -sf /usr/local/Cellar/openssl/1.0.1f/lib/libcrypto.1.0.0.dylib /usr/local/Cellar/openssl/1.0.1f/lib/libcrypto.dylib
sudo ln -sf /usr/local/Cellar/openssl/1.0.1f/lib/libcrypto.1.0.0.dylib /usr/local/lib/libcrypto.dylib

sudo ln -sf /usr/local/Cellar/openssl/1.0.1f/lib/libssl.1.0.0.dylib /usr/local/lib/libssl.1.0.0.dylib
sudo ln -sf /usr/local/Cellar/openssl/1.0.1f/lib/libssl.1.0.0.dylib /usr/local/Cellar/openssl/1.0.1f/lib/libssl.dylib
sudo ln -sf /usr/local/Cellar/openssl/1.0.1f/lib/libssl.1.0.0.dylib /usr/local/lib/libssl.dylib

# x264
cd /usr/local/Cellar
sudo mkdir x264
cd x264
sudo mkdir r2197.4
cd r2197.4
sudo mkdir lib

sudo rm /usr/local/lib/libx264.*
sudo rm /usr/local/Cellar/x264/r2197.4/lib/libx264.*

sudo cp /Applications/"$fd"/ffmpeg/Cellar/x264/* /usr/local/Cellar/x264/r2197.4/lib

sudo ln -sf /usr/local/Cellar/x264/r2197.4/lib/libx264.125.dylib /usr/local/lib/libx264.125.dylib
sudo ln -sf /usr/local/Cellar/x264/r2197.4/lib/libx264.125.dylib /usr/local/Cellar/x264/r2197.4/lib/libx264.dylib
sudo ln -sf /usr/local/Cellar/x264/r2197.4/lib/libx264.125.dylib /usr/local/lib/libx264.dylib

# xvid
cd /usr/local/Cellar
sudo mkdir xvid
cd xvid
sudo mkdir 1.3.2
cd 1.3.2
sudo mkdir lib

sudo rm /usr/local/lib/libxvidcore.*
sudo rm /usr/local/Cellar/xvid/1.3.2/lib/libxvidcore.*

sudo cp /Applications/"$fd"/ffmpeg/Cellar/xvid/* /usr/local/Cellar/xvid/1.3.2/lib

sudo ln -sf /usr/local/Cellar/xvid/1.3.2/lib/libxvidcore.4.dylib /usr/local/lib/libxvidcore.4.dylib

# fmod
sudo rm /usr/local/lib/libfmod.*
sudo cp /Applications/"$fd"/fmod/libfmod.dylib /usr/local/lib

# FTDI drivers
cd /usr/local/lib
sudo rm libftd2xx.*

sudo cp /Applications/"$fd"/Drivers/libftd2xx.1.2.2.dylib /usr/local/lib
sudo ln -sf libftd2xx.1.2.2.dylib libftd2xx.dylib

# Lib USB drivers
sudo rm libusb-0.1.4.dylib
sudo rm libusb.dylib
sudo rm libusb-1.0.0.dylib
sudo rm libusb-1.0.dylib

sudo cp /Applications/"$fd"/Drivers/libusb-0.1.4.dylib /usr/local/lib
sudo ln -sf libusb-0.1.4.dylib libusb.dylib
sudo cp /Applications/"$fd"/Drivers/libusb-1.0.0.dylib /usr/local/lib
sudo ln -sf libusb-1.0.0.dylib libusb-1.0.dylib

# Applications
cd /Applications/"$fd"

# Player
sudo mkdir Player.app/Contents/Frameworks
sudo mkdir Player.app/Contents/PlugIns
sudo mkdir Player.app/Contents/Resources
sudo cp -f bundle/InfoPlayer/Info.plist Player.app/Contents
sudo cp -R bundle/Frameworks/* Player.app/Contents/Frameworks
sudo cp -R bundle/PlugIns/* Player.app/Contents/PlugIns
sudo cp -f bundle/Player.icns Player.app/Contents/Resources
sudo cp -f bundle/qt.conf Player.app/Contents/Resources
sudo cp -f bundle/"$cfg" Player.app/Contents/MacOS
sudo mv Player.app "$lpapp"

osascript <<END_SCRIPT
tell application "Finder"
make new alias to file (posix file "/Applications/$fd/$lpapp") at desktop
end tell
END_SCRIPT

# Pro
sudo mkdir Pro.app/Contents/Frameworks
sudo mkdir Pro.app/Contents/PlugIns
sudo mkdir Pro.app/Contents/Resources
sudo cp -f bundle/InfoPro/Info.plist Pro.app/Contents
sudo cp -R bundle/Frameworks/* Pro.app/Contents/Frameworks
sudo cp -R bundle/PlugIns/* Pro.app/Contents/PlugIns
sudo cp -f bundle/Pro.icns Pro.app/Contents/Resources
sudo cp -f bundle/qt.conf Pro.app/Contents/Resources
sudo cp -f bundle/"$cfg" Pro.app/Contents/MacOS
sudo mv Pro.app "$proapp"

osascript <<END_SCRIPT
tell application "Finder"
make new alias to file (posix file "/Applications/$fd/$proapp") at desktop
end tell
END_SCRIPT

# WiLight
sudo cp -f bundle/"$cfg" "Wi-Light Mac.app"/Contents/MacOS

# 3D
sudo cp -f bundle/"$cfg" 3D.app/Contents/MacOS

# Clean up
sudo rm -r ffmpeg
sudo rm -r fmod
sudo rm -r bundle

cd /Applications
sudo chmod -R a+rwx "$fd"
sudo chgrp -R staff "$fd"

exit 0
