xref: /aosp_15_r20/system/media/camera/docs/metadata-check-dependencies (revision b9df5ad1c9ac98a7fefaac271a55f7ae3db05414)
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