1 #!/bin/bash 2 3 # 4 # Copyright (C) 2012 The Android Open Source Project 5 # 6 # Licensed under the Apache License, Version 2.0 (the "License"); 7 # you may not use this file except in compliance with the License. 8 # You may obtain a copy of the License at 9 # 10 # http://www.apache.org/licenses/LICENSE-2.0 11 # 12 # Unless required by applicable law or agreed to in writing, software 13 # distributed under the License is distributed on an "AS IS" BASIS, 14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 # See the License for the specific language governing permissions and 16 # limitations under the License. 17 # 18 19 packager="" 20 retcode=0 21 if [[ "$OSTYPE" == "darwin"* ]] 22 then 23 packager="macports" 24 25 if ! which port >& /dev/null 26 then 27 echo "Missing port binary, please install from http://www.macports.org/" >& 2 28 fi 29 elif [[ "$OSTYPE" == "linux-gnu" ]] && which apt-get >& /dev/null 30 then 31 packager="apt-get" 32 fi 33 34 function packager_install 35 { 36 if [[ $packager == "macports" ]] 37 then 38 echo "sudo port install $1" 39 elif [[ $packager == "apt-get" ]] 40 then 41 echo "sudo apt-get install $1" 42 else 43 echo "<your package manager> install $1" 44 fi 45 } 46 47 function binary_check() 48 { 49 local bin=$1 50 local macports=$2 51 local aptget=$3 52 53 local pkg="" 54 55 if type -f "$bin" >& /dev/null 56 then 57 return 0 58 fi 59 60 if [[ $packager == "macports" ]] 61 then 62 pkg="$macports" 63 elif [[ $packager == "apt-get" ]] 64 then 65 pkg="$aptget" 66 fi 67 68 if [[ -n $pkg ]] 69 then 70 echo "Missing $bin binary please install with '$(packager_install $pkg)'" 71 fi 72 73 retcode=1 74 return 1 75 } 76 77 function python_check() 78 { 79 local mod=$1 80 local macports=$2 81 local aptget=$3 82 83 local pkg="" 84 85 if python -c "import $mod" >& /dev/null 86 then 87 return 0 88 fi 89 90 if [[ $packager == "macports" ]] 91 then 92 pkg="$macports" 93 elif [[ $packager == "apt-get" ]] 94 then 95 pkg="$aptget" 96 fi 97 98 if [[ -n $pkg ]] 99 then 100 echo "Missing python module $mod, please install with '$(packager_install $pkg)'" 101 fi 102 103 retcode=1 104 return 1 105 } 106 107 binary_check xmllint libxml2 libxml2-utils 108 binary_check tidy tidy tidy 109 binary_check python python27 python2.7 110 python_check bs4 py27-beautifulsoup4 python-bs4 111 python_check mako py27-mako python-mako 112 113 exit $retcode 114 115