File: revert_setup_machine.sh

package info (click to toggle)
saunafs 5.8.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 13,808 kB
  • sloc: cpp: 117,454; sh: 20,020; python: 5,016; ansic: 3,768; makefile: 61; awk: 17
file content (70 lines) | stat: -rwxr-xr-x 2,130 bytes parent folder | download
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
#!/usr/bin/env bash
set -eux -o pipefail
readonly self="$(readlink -f "${BASH_SOURCE[0]}")"
readonly script_name="$(basename "${self}")"

usage() {
	cat >&2 <<-EOF
		Usage: ${script_name} confirm

		This script reverts the changes applied by the setup_machine.sh script.
		It may be useful for debugging the setup_machine.sh script on new operating systems.
		It should be used __only__ by advanced users, who know what this script does.
		You need root permissions to run this script.
	EOF
	exit 1
}

if [[ ${1} != confirm ]]; then
	usage >&2
fi
shift

for username in saunafstest_{0..9}; do
	if getent passwd ${username} > /dev/null; then
		userdel ${username}
	fi
done

if getent passwd saunafstest > /dev/null; then
	userdel saunafstest
fi

if getent group saunafstest > /dev/null; then
	groupdel saunafstest
fi

rm -f /etc/sudoers.d/saunafstest
rm -rf /var/lib/saunafstest
rm -f /etc/security/limits.d/10-saunafstests.conf
rm -f /etc/saunafs_tests.conf
rm -f /etc/sysctl.d/60-ip_port_range.conf

mountpoint /mnt/ramdisk && umount /mnt/ramdisk
rm -rf /mnt/ramdisk

sed -i -e "/### Reload pam limits on sudo - necessary for saunafs tests. ###/d" /etc/pam.d/sudo
sed -i -e "/session required pam_limits.so/d" /etc/pam.d/sudo

sed -i -e "/# Ramdisk used in SaunaFS tests/d" /etc/fstab
sed -i -e "\[ramdisk  /mnt/ramdisk  tmpfs  mode=1777,size=2g[d" /etc/fstab
sed -i -e "/# Loop devices used in SaunaFS tests/d" /etc/fstab

temp_file=$(mktemp -p /tmp revert_setup_machine-etc-fstab.XXXXXXXXXX)
cp /etc/fstab "${temp_file}"

while IFS=$'\n' read -r line ; do
	file_system=$(echo "${line}" | awk '{print $1}')
	file_system_directory=$(dirname "${file_system}")
	mount_point=$(echo "${line}" | awk '{print $2}')

	mountpoint "${mount_point}" && umount -d "${mount_point}"
	[ -d "${mount_point}" ] && rmdir --ignore-fail-on-non-empty --parents "${mount_point}"
	rm -f "${file_system}"
	[ -d "${file_system_directory}" ] && rmdir --ignore-fail-on-non-empty --parents "${file_system_directory}"
	sed -i -e "\@${line}@d" /etc/fstab
done < <(grep "saunafstest_loop" "${temp_file}")

rm "${temp_file}"
set +x
echo "Reverted successfully"