This file is indexed.

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