2015-07-20 00:09:47 -07:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
set -eu
|
|
|
|
|
|
2015-08-12 19:26:31 -07:00
|
|
|
readonly SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
2017-08-19 17:57:21 -07:00
|
|
|
readonly TEST_IMAGE="cloudron/test:25.2.0"
|
2015-08-12 19:26:31 -07:00
|
|
|
|
2015-07-20 00:09:47 -07:00
|
|
|
# reset sudo timestamp to avoid wrong success
|
|
|
|
|
sudo -k || sudo --reset-timestamp
|
|
|
|
|
|
|
|
|
|
# checks if all scripts are sudo access
|
2019-01-18 14:48:31 -08:00
|
|
|
scripts=("${SOURCE_DIR}/src/scripts/clearvolume.sh" \
|
2018-12-20 14:33:29 -08:00
|
|
|
"${SOURCE_DIR}/src/scripts/mvvolume.sh" \
|
|
|
|
|
"${SOURCE_DIR}/src/scripts/mkdirvolume.sh" \
|
2018-11-25 14:43:29 -08:00
|
|
|
"${SOURCE_DIR}/src/scripts/rmaddondir.sh" \
|
2015-08-12 19:26:31 -07:00
|
|
|
"${SOURCE_DIR}/src/scripts/reboot.sh" \
|
2018-11-23 15:49:47 +01:00
|
|
|
"${SOURCE_DIR}/src/scripts/restart.sh" \
|
2021-03-23 11:01:14 -07:00
|
|
|
"${SOURCE_DIR}/src/scripts/restartservice.sh" \
|
2016-10-31 14:55:06 +01:00
|
|
|
"${SOURCE_DIR}/src/scripts/update.sh" \
|
2022-10-11 22:58:12 +02:00
|
|
|
"${SOURCE_DIR}/src/scripts/du.sh" \
|
2018-12-19 11:47:15 -08:00
|
|
|
"${SOURCE_DIR}/src/scripts/remotesupport.sh" \
|
2020-08-06 22:04:46 -07:00
|
|
|
"${SOURCE_DIR}/src/scripts/starttask.sh" \
|
|
|
|
|
"${SOURCE_DIR}/src/scripts/stoptask.sh" \
|
|
|
|
|
"${SOURCE_DIR}/src/scripts/rmmailbox.sh" \
|
2021-07-13 11:13:16 +02:00
|
|
|
"${SOURCE_DIR}/src/scripts/setblocklist.sh" \
|
2022-01-05 14:32:50 +01:00
|
|
|
"${SOURCE_DIR}/src/scripts/setldapallowlist.sh" \
|
2023-03-09 19:54:04 +01:00
|
|
|
"${SOURCE_DIR}/src/scripts/hdparm.sh" \
|
2017-09-12 21:45:42 -07:00
|
|
|
"${SOURCE_DIR}/src/scripts/configurelogrotate.sh")
|
2015-07-20 00:09:47 -07:00
|
|
|
|
2023-07-11 14:58:09 +05:30
|
|
|
declare -a missing_scripts=()
|
2015-07-20 00:09:47 -07:00
|
|
|
for script in "${scripts[@]}"; do
|
|
|
|
|
if [[ $(sudo -n "${script}" --check 2>/dev/null) != "OK" ]]; then
|
2023-07-11 14:58:09 +05:30
|
|
|
missing_scripts+=("${script}")
|
2015-07-20 00:09:47 -07:00
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
|
2023-07-11 14:58:09 +05:30
|
|
|
if [[ ${#missing_scripts[@]} -gt 0 ]]; then
|
|
|
|
|
echo "The following script(s) have no sudo access: ${missing_scripts[*]} . Try 'sudo -n ${script[0]} --check'"
|
|
|
|
|
echo -e "\nYou have to add the lines below to /etc/sudoers.d/yellowtent\n\n"
|
|
|
|
|
|
|
|
|
|
for missing_script in "${missing_scripts[@]}"; do
|
|
|
|
|
echo "Defaults!${missing_script} env_keep=\"HOME BOX_ENV\""
|
|
|
|
|
echo "${USER} ALL=(ALL) NOPASSWD: ${missing_script}"
|
|
|
|
|
echo ""
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
2015-11-09 23:31:00 -08:00
|
|
|
|
2023-08-10 16:50:29 +05:30
|
|
|
images=$(node -e "const i = require('${SOURCE_DIR}/src/infra_version.js'); console.log(Object.keys(i.images).map(x => i.images[x]).join(' '));")
|
2015-07-20 00:09:47 -07:00
|
|
|
|
2016-05-24 16:46:27 -07:00
|
|
|
for image in ${images}; do
|
|
|
|
|
if ! docker inspect "${image}" >/dev/null 2>/dev/null; then
|
2021-09-22 11:37:27 +02:00
|
|
|
docker pull ${image%@sha256:*}
|
2016-05-24 16:46:27 -07:00
|
|
|
fi
|
|
|
|
|
done
|
2015-11-09 23:31:00 -08:00
|
|
|
|