Add full diversion machinery like we have in kali-themes
Raphaƫl Hertzog
4 years ago
|
0 |
#!/bin/sh
|
|
1 |
|
|
2 |
update_script() {
|
|
3 |
local script=$1
|
|
4 |
(
|
|
5 |
sed -n -e '1,/^FILES_TO_DIVERT="/ p' $script
|
|
6 |
cat files-to-divert
|
|
7 |
sed -n -e '/^" # END FILES_TO_DIVERT/,$ p' $script
|
|
8 |
) > $script.new
|
|
9 |
mv $script.new $script
|
|
10 |
}
|
|
11 |
|
|
12 |
update_script debian/kali-defaults.preinst
|
|
13 |
update_script debian/kali-defaults.postinst
|
|
14 |
update_script debian/kali-defaults.postrm
|
0 | |
.bashrc usr/share/kali-defaults/
|
|
0 |
.bashrc usr/share/kali-defaults/etc/skel/
|
1 | 1 |
browser/kali.js etc/firefox-esr/
|
2 | 2 |
browser/distribution.ini usr/share/firefox-esr/distribution/
|
3 | 3 |
browser/policies.json usr/share/firefox-esr/distribution/
|
0 | 0 |
#!/bin/sh
|
1 | 1 |
|
2 | 2 |
set -e
|
|
3 |
|
|
4 |
FILES_TO_DIVERT="
|
|
5 |
/etc/skel/.bashrc
|
|
6 |
/etc/xdg/autostart/gnome-software-service.desktop
|
|
7 |
/usr/share/firefox-esr/distribution/distribution.ini
|
|
8 |
" # END FILES_TO_DIVERT
|
|
9 |
|
|
10 |
install_config_file() {
|
|
11 |
local file=$1
|
|
12 |
local opt=$2
|
|
13 |
local orig_file="/usr/share/kali-defaults$file"
|
|
14 |
if [ "$opt" = "force" ] || ([ ! -e $file ] && [ -e $orig_file ]); then
|
|
15 |
echo "Installing $orig_file as $file"
|
|
16 |
mkdir -p $(dirname $file)
|
|
17 |
cp $orig_file $file
|
|
18 |
fi
|
|
19 |
}
|
3 | 20 |
|
4 | 21 |
if [ "$1" = "configure" ]; then
|
5 | 22 |
if dpkg --compare-versions "$2" lt-nl 2.0~3; then
|
|
28 | 45 |
rm -f /etc/X11/Xsession.d/52kali_noautomount
|
29 | 46 |
fi
|
30 | 47 |
|
31 | |
for file in /etc/skel/.bashrc
|
32 | |
do
|
33 | |
orig_file="/usr/share/kali-defaults/$(basename $file)"
|
34 | |
if [ ! -e $file ] && [ -e $orig_file ]; then
|
35 | |
echo "Installing $orig_file as $file"
|
36 | |
mkdir -p $(dirname $file)
|
37 | |
cp $orig_file $file
|
38 | |
fi
|
|
48 |
for file in $FILES_TO_DIVERT; do
|
|
49 |
install_config_file $file
|
39 | 50 |
done
|
40 | 51 |
fi
|
41 | 52 |
|
18 | 18 |
# the debian-policy package
|
19 | 19 |
|
20 | 20 |
drop_diversion() {
|
|
21 |
local file="$1"
|
21 | 22 |
dpkg-divert --rename --package kali-defaults \
|
22 | |
--divert $2 \
|
23 | |
--remove $1
|
|
23 |
--divert "$file.original" \
|
|
24 |
--remove $file
|
24 | 25 |
}
|
|
26 |
|
|
27 |
FILES_TO_DIVERT="
|
|
28 |
/etc/skel/.bashrc
|
|
29 |
/etc/xdg/autostart/gnome-software-service.desktop
|
|
30 |
/usr/share/firefox-esr/distribution/distribution.ini
|
|
31 |
" # END FILES_TO_DIVERT
|
25 | 32 |
|
26 | 33 |
case "$1" in
|
27 | 34 |
remove)
|
28 | |
for file in /etc/skel/.bashrc \
|
29 | |
/usr/share/firefox-esr/distribution/distribution.ini \
|
30 | |
/etc/xdg/autostart/gnome-software-service.desktop
|
31 | |
do
|
|
35 |
for file in $FILES_TO_DIVERT; do
|
32 | 36 |
rm -f $file
|
33 | 37 |
drop_diversion $file $file.original
|
34 | 38 |
done
|
13 | 13 |
# the debian-policy package
|
14 | 14 |
|
15 | 15 |
setup_diversion() {
|
16 | |
# $1: is file to divert, $2 is path to divert to
|
|
16 |
local file="$1"
|
17 | 17 |
dpkg-divert --rename --package kali-defaults \
|
18 | |
--divert $2 \
|
19 | |
--add $1
|
20 | |
}
|
21 | |
setup_diversions() {
|
22 | |
for file in "$@"
|
23 | |
do
|
24 | |
setup_diversion $file $file.original
|
25 | |
done
|
|
18 |
--divert "$file.original" \
|
|
19 |
--add "$file"
|
26 | 20 |
}
|
27 | 21 |
|
28 | |
TO_DIVERT="
|
|
22 |
FILES_TO_DIVERT="
|
29 | 23 |
/etc/skel/.bashrc
|
30 | 24 |
/etc/xdg/autostart/gnome-software-service.desktop
|
31 | 25 |
/usr/share/firefox-esr/distribution/distribution.ini
|
32 | |
"
|
|
26 |
" # END FILES_TO_DIVERT
|
33 | 27 |
|
34 | 28 |
case "$1" in
|
35 | 29 |
install)
|
36 | |
setup_diversions $TO_DIVERT
|
|
30 |
for file in $FILES_TO_DIVERT; do
|
|
31 |
setup_diversion $file
|
|
32 |
done
|
37 | 33 |
;;
|
38 | 34 |
|
39 | 35 |
upgrade)
|
40 | |
if dpkg --compare-versions "$2" lt 0.8; then
|
41 | |
setup_diversions /etc/skel/.bashrc
|
42 | |
fi
|
43 | 36 |
if dpkg --compare-versions "$2" eq 2016.2.2; then
|
44 | 37 |
rm -f /etc/udev/rules.d/73-usb-net-by-mac.rules
|
45 | 38 |
fi
|
46 | |
if dpkg --compare-versions "$2" lt 2017.2.0; then
|
47 | |
setup_diversions /usr/share/firefox-esr/distribution/distribution.ini
|
48 | |
fi
|
49 | |
if dpkg --compare-versions "$2" lt 2019.3.9; then
|
50 | |
setup_diversions /etc/xdg/autostart/gnome-software-service.desktop
|
51 | |
fi
|
|
39 |
|
|
40 |
# Dynamically add new diversions when required on upgrade
|
|
41 |
for file in $FILES_TO_DIVERT; do
|
|
42 |
if [ -z "$(dpkg-divert --listpackage "$file")" ]; then
|
|
43 |
setup_diversion "$file"
|
|
44 |
fi
|
|
45 |
done
|
52 | 46 |
;;
|
53 | 47 |
|
54 | 48 |
abort-upgrade)
|
|
0 |
/etc/skel/.bashrc
|
|
1 |
/etc/xdg/autostart/gnome-software-service.desktop
|
|
2 |
/usr/share/firefox-esr/distribution/distribution.ini
|