blob: 8077a747b19646b026801a499b0fe5817c210870 [file] [log] [blame]
Alexander Afanasyev24ed83a2015-03-30 11:06:50 -07001has() {
Davide Pesavento6a81b772017-08-20 18:43:46 -04002 local saved_xtrace
3 [[ $- == *x* ]] && saved_xtrace=-x || saved_xtrace=+x
4 set +x
5
Alexander Afanasyev24ed83a2015-03-30 11:06:50 -07006 local p=$1
7 shift
Davide Pesavento6a81b772017-08-20 18:43:46 -04008 local i ret=1
9 for i in "$@"; do
10 if [[ "${i}" == "${p}" ]]; then
11 ret=0
12 break
13 fi
Alexander Afanasyev24ed83a2015-03-30 11:06:50 -070014 done
Davide Pesavento6a81b772017-08-20 18:43:46 -040015
16 set ${saved_xtrace}
17 return ${ret}
Alexander Afanasyev24ed83a2015-03-30 11:06:50 -070018}
Davide Pesaventof6be8e32020-04-30 16:06:03 -040019export -f has
Davide Pesavento0b0eddd2019-03-19 14:42:15 -040020
21sudo_preserve_env() {
22 local saved_xtrace
23 [[ $- == *x* ]] && saved_xtrace=-x || saved_xtrace=+x
24 set +x
25
26 local vars=()
27 while [[ $# -gt 0 ]]; do
28 local arg=$1
29 shift
30 case ${arg} in
31 --) break ;;
32 *) vars+=("${arg}=${!arg}") ;;
33 esac
34 done
35
36 set ${saved_xtrace}
37 sudo env "${vars[@]}" "$@"
38}
Davide Pesaventof6be8e32020-04-30 16:06:03 -040039export -f sudo_preserve_env