postinst is in ooniprobe 1.3.2-2.
This file is a maintainer script. It is executed when installing (*inst) or removing (*rm) the package.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | #!/bin/sh
set -e
fix_permissions() {
local user group mode path
read user group mode path
chown $user:$group $path
chmod $mode $path
}
create_defaults() {
local should_run_cronjob="$1"
cat > /etc/default/ooniprobe <<EOF
# Debian configuration file for ooniprobe
# Update resources (GeoIP data, test lists) on a monthly basis
OONIPROBE_UPDATE_RESOURCES=$should_run_cronjob
# Run a test using the default deck every day
OONIPROBE_RUN_DAILY_TEST=$should_run_cronjob
EOF
}
update_defaults() {
local should_run_cronjob="$1"
sed -e "s/^OONIPROBE_UPDATE_RESOURCES=.*$/OONIPROBE_UPDATE_RESOURCES=$should_run_cronjob/" \
-e "s/^OONIPROBE_RUN_DAILY_TEST=.*$/OONIPROBE_RUN_DAILY_TEST=$should_run_cronjob/" \
-i /etc/default/ooniprobe
}
initialize_default_test() {
local new_deck_dir new_deck_file
su Debian-ooni -c 'ooniresources --update-inputs --update-geoip'
mkdir -p /var/lib/ooni/decks
{ dpkg-statoverride --list /var/lib/ooni/decks ||
echo Debian-ooni Debian-ooni 775 /var/lib/ooni/decks
} | fix_permissions
mkdir -p /var/lib/ooni/inputs
{ dpkg-statoverride --list /var/lib/ooni/inputs ||
echo Debian-ooni Debian-ooni 775 /var/lib/ooni/inputs
} | fix_permissions
# Move the old deck away
if [ -e /var/lib/ooni/decks/debian-default ]; then
rm -rf /var/lib/ooni/decks/debian-default.old
mv /var/lib/ooni/decks/debian-default /var/lib/ooni/decks/debian-default.old
fi
if ! su Debian-ooni -c "oonideckgen -o /var/lib/ooni/decks"; then
echo "oonideckgen failed." >&2
if [ -e /var/lib/ooni/decks/debian-default.old ]; then
echo "Restoring previous test deck." >&2
mv /var/lib/ooni/decks/debian-default.old /var/lib/ooni/decks/debian-default
return 0
fi
echo "WARNING: ooniprobe will not be able to run daily." >&2
return 0
fi
echo "Moving deck to /var/lib/ooni/decks/debian-default/user.deck"
echo "It will be run daily through cron."
new_deck_dir=$(find /var/lib/ooni/decks -maxdepth 1 -type d -name 'deck-*')
mv "$new_deck_dir" /var/lib/ooni/decks/debian-default
new_deck_file=$(find /var/lib/ooni/decks/debian-default -maxdepth 1 -type f -name '*.deck')
sed -e "s,$new_deck_dir,/var/lib/ooni/decks/debian-default,g" -i "$new_deck_file"
mv "$new_deck_file" /var/lib/ooni/decks/debian-default/user.deck
# Filter dns_consistency test, as it is currently too slow to run daily
python -c 'import yaml; yaml.safe_dump([test for test in yaml.safe_load(open("/var/lib/ooni/decks/debian-default/user.deck")) if test["options"]["test_file"] != "blocking/dns_consistency"], stream=open("/var/lib/ooni/decks/debian-default/user.deck", "w"))'
}
case "$1" in
configure)
. /usr/share/debconf/confmodule
if ! getent passwd Debian-ooni > /dev/null; then
adduser --system --group --quiet --home /var/lib/ooni \
--no-create-home --shell /bin/sh \
--force-badname Debian-ooni
fi
if ! [ -d /var/lib/ooni ]; then
mkdir /var/lib/ooni
fi
{ dpkg-statoverride --list /var/lib/ooni ||
echo Debian-ooni Debian-ooni 775 /var/lib/ooni
} | fix_permissions
if ! [ -d /var/lib/ooni/reports ]; then
mkdir /var/lib/ooni/reports
fi
{ dpkg-statoverride --list /var/lib/ooni/reports ||
echo Debian-ooni Debian-ooni 775 /var/lib/ooni/reports
} | fix_permissions
if ! [ -d /var/log/ooni ]; then
mkdir /var/log/ooni
fi
{ dpkg-statoverride --list /var/log/ooni ||
echo Debian-ooni adm 750 /var/log/ooni
} | fix_permissions
db_get ooniprobe/run-cronjob || RET="false"
SHOULD_RUN_CRONJOB="$RET"
if [ -f /etc/default/ooniprobe ]; then
update_defaults "$SHOULD_RUN_CRONJOB"
else
create_defaults "$SHOULD_RUN_CRONJOB"
fi
{ dpkg-statoverride --list /etc/default/ooniprobe ||
echo root root 644 /etc/default/ooniprobe
} | fix_permissions
if [ "$SHOULD_RUN_CRONJOB" = "true" ]; then
initialize_default_test
fi
;;
esac
# Automatically added by dhpython:
if which pycompile >/dev/null 2>&1; then
pycompile -p ooniprobe
fi
# End automatically added section
exit 0
|