89 lines
2.2 KiB
Bash
Executable File
89 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# This script needs to be run with root rights.
|
|
if [ $UID -ne 0 ]; then
|
|
sudo $0
|
|
exit $?
|
|
fi
|
|
|
|
declare -ga PACKAGES
|
|
|
|
function printNotSupportedMessageAndExit() {
|
|
echo
|
|
echo "Currently this script only works for distributions supporting apt-get, dnf or pacman."
|
|
echo "Please add support for your distribution and submit the patch at https://bugs.webkit.org"
|
|
echo
|
|
exit 1
|
|
}
|
|
|
|
function guessPackageManager() {
|
|
local ret
|
|
|
|
if apt-get --version &>/dev/null; then
|
|
# apt-get - Debian based distributions
|
|
ret="apt"
|
|
elif dnf --version &>/dev/null; then
|
|
# dnf - Fedora
|
|
ret="dnf"
|
|
elif pacman -Ss &>/dev/null; then
|
|
# pacman - Arch Linux
|
|
# pacman --version and pacman --help both return non-0
|
|
ret="pacman"
|
|
else
|
|
printNotSupportedMessageAndExit
|
|
fi
|
|
|
|
echo $ret
|
|
}
|
|
|
|
function installDependencies {
|
|
local packageManager
|
|
|
|
packageManager=$(guessPackageManager)
|
|
source "$(dirname "$0")/dependencies/$packageManager"
|
|
installDependenciesWith${packageManager^}
|
|
}
|
|
|
|
function installDependenciesWithApt {
|
|
apt-get install -y --no-install-recommends ${PACKAGES[@]}
|
|
|
|
# Ubuntu Bionic doesn't ship pipenv. So fallback to the pip3 install path.
|
|
if apt-cache show pipenv &>/dev/null; then
|
|
apt-get install -y --no-install-recommends pipenv
|
|
else
|
|
apt-get install -y --no-install-recommends python3-pip
|
|
pip3 install pipenv
|
|
fi
|
|
}
|
|
|
|
function installDependenciesWithDnf {
|
|
dnf install ${PACKAGES[@]}
|
|
}
|
|
|
|
function installDependenciesWithPacman {
|
|
pacman -S --needed ${PACKAGES[@]}
|
|
|
|
cat <<-EOF
|
|
|
|
The following packages are available from AUR, and needed for running tests:
|
|
|
|
ruby-json ruby-highline
|
|
|
|
Instructions on how to use the AUR can be found on the Arch Wiki:
|
|
|
|
https://wiki.archlinux.org/index.php/Arch_User_Repository
|
|
|
|
You will also need to follow the instructions on the wiki to make 'python'
|
|
call python2 in the WebKit folder:
|
|
|
|
https://wiki.archlinux.org/index.php/Python#Dealing_with_version_problem_in_build_scripts
|
|
|
|
Alternatively, you may use a Python 2.x virtualenv while hacking on WPE:
|
|
|
|
https://wiki.archlinux.org/index.php/Python/Virtual_environment
|
|
|
|
EOF
|
|
}
|
|
|
|
installDependencies
|