Jérémy Lecour
d9e95218ce
Some checks reported errors
continuous-integration/drone/push Build was killed
38 lines
964 B
Bash
38 lines
964 B
Bash
#!/bin/sh
|
|
|
|
is_held() {
|
|
package=$1
|
|
apt-mark showhold ${package} | grep --silent ${package}
|
|
}
|
|
|
|
is_installed() {
|
|
package=$1
|
|
dpkg -l "${package}" 2>/dev/null | grep -q -E '^(i|h)i'
|
|
}
|
|
|
|
config_file="/etc/evolinux/apt_hold_packages.cf"
|
|
return_code=0
|
|
|
|
if [ -f ${config_file} ]; then
|
|
packages="$(cat ${config_file})"
|
|
|
|
if [ -n "${packages}" ]; then
|
|
for package in ${packages}; do
|
|
if [ -n "${package}" ]; then
|
|
if is_installed ${package} && ! is_held ${package}; then
|
|
apt-mark hold ${package}
|
|
msg="Package \`${package}' has been marked \`hold'."
|
|
>&2 echo "${msg}"
|
|
wall_bin=$(command -v wall)
|
|
if [ -n "${wall_bin}" ]; then
|
|
"${wall_bin}" --timeout 5 "${msg}"
|
|
fi
|
|
return_code=1
|
|
fi
|
|
fi
|
|
done
|
|
fi
|
|
fi
|
|
|
|
exit ${return_code}
|