116 lines
2.4 KiB
Bash
Executable File
116 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#
|
|
# Copyright (C) 2012 The Android Open Source Project
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
packager=""
|
|
retcode=0
|
|
if [[ "$OSTYPE" == "darwin"* ]]
|
|
then
|
|
packager="macports"
|
|
|
|
if ! which port >& /dev/null
|
|
then
|
|
echo "Missing port binary, please install from http://www.macports.org/" >& 2
|
|
fi
|
|
elif [[ "$OSTYPE" == "linux-gnu" ]] && which apt-get >& /dev/null
|
|
then
|
|
packager="apt-get"
|
|
fi
|
|
|
|
function packager_install
|
|
{
|
|
if [[ $packager == "macports" ]]
|
|
then
|
|
echo "sudo port install $1"
|
|
elif [[ $packager == "apt-get" ]]
|
|
then
|
|
echo "sudo apt-get install $1"
|
|
else
|
|
echo "<your package manager> install $1"
|
|
fi
|
|
}
|
|
|
|
function binary_check()
|
|
{
|
|
local bin=$1
|
|
local macports=$2
|
|
local aptget=$3
|
|
|
|
local pkg=""
|
|
|
|
if type -f "$bin" >& /dev/null
|
|
then
|
|
return 0
|
|
fi
|
|
|
|
if [[ $packager == "macports" ]]
|
|
then
|
|
pkg="$macports"
|
|
elif [[ $packager == "apt-get" ]]
|
|
then
|
|
pkg="$aptget"
|
|
fi
|
|
|
|
if [[ -n $pkg ]]
|
|
then
|
|
echo "Missing $bin binary; please install with '$(packager_install $pkg)'"
|
|
fi
|
|
|
|
retcode=1
|
|
return 1
|
|
}
|
|
|
|
function python_check()
|
|
{
|
|
local mod=$1
|
|
local macports=$2
|
|
local aptget=$3
|
|
|
|
local pkg=""
|
|
|
|
if python3 -c "import $mod" >& /dev/null
|
|
then
|
|
return 0
|
|
fi
|
|
|
|
if [[ $packager == "macports" ]]
|
|
then
|
|
pkg="$macports"
|
|
elif [[ $packager == "apt-get" ]]
|
|
then
|
|
pkg="$aptget"
|
|
fi
|
|
|
|
if [[ -n $pkg ]]
|
|
then
|
|
echo "Missing python module $mod, please install with '$(packager_install $pkg)'"
|
|
fi
|
|
|
|
retcode=1
|
|
return 1
|
|
}
|
|
|
|
binary_check xmllint libxml2 libxml2-utils
|
|
binary_check tidy tidy tidy
|
|
binary_check python3 python3 python3
|
|
python_check bs4 python-bs4 python3-bs4
|
|
python_check mako python3-mako python3-mako
|
|
python_check markdown python-markdown python3-markdown
|
|
|
|
exit $retcode
|
|
|