blob: 8ddc4baf6f344a9c7e14986d8f1f0c97c651b4e2 [file] [log] [blame]
Yuanzhi Gaodd516fe2015-04-23 04:18:24 -07001has() {
Alexander Afanasyeve0ab3f92016-10-20 13:29:39 -07002 local saved_xtrace
3 [[ $- == *x* ]] && saved_xtrace=-x || saved_xtrace=+x
4 set +x
5
Yuanzhi Gaodd516fe2015-04-23 04:18:24 -07006 local p=$1
7 shift
Alexander Afanasyeve0ab3f92016-10-20 13:29:39 -07008 local i ret=1
9 for i in "$@"; do
10 if [[ "${i}" == "${p}" ]]; then
11 ret=0
12 break
13 fi
Yuanzhi Gaodd516fe2015-04-23 04:18:24 -070014 done
Alexander Afanasyeve0ab3f92016-10-20 13:29:39 -070015
16 set ${saved_xtrace}
17 return ${ret}
Yuanzhi Gaodd516fe2015-04-23 04:18:24 -070018}
Alexander Afanasyev49ecab22020-05-31 00:03:17 -040019
20sudo_preserve_env() {
21 local saved_xtrace
22 [[ $- == *x* ]] && saved_xtrace=-x || saved_xtrace=+x
23 set +x
24
25 local vars=()
26 while [[ $# -gt 0 ]]; do
27 local arg=$1
28 shift
29 case ${arg} in
30 --) break ;;
31 *) vars+=("${arg}=${!arg}") ;;
32 esac
33 done
34
35 set ${saved_xtrace}
36 sudo env "${vars[@]}" "$@"
37}