#!/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 " 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 python -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 python python27 python2.7 python_check bs4 py27-beautifulsoup4 python-bs4 python_check mako py27-mako python-mako python_check markdown py27-markdown python-markdown exit $retcode