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