Codebase list kali-defaults / af96d37
Add full diversion machinery like we have in kali-themes Raphaƫl Hertzog 4 years ago
6 changed file(s) with 63 addition(s) and 36 deletion(s). Raw diff Collapse all Expand all
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/
11 browser/kali.js etc/firefox-esr/
22 browser/distribution.ini usr/share/firefox-esr/distribution/
33 browser/policies.json usr/share/firefox-esr/distribution/
00 #!/bin/sh
11
22 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 }
320
421 if [ "$1" = "configure" ]; then
522 if dpkg --compare-versions "$2" lt-nl 2.0~3; then
2845 rm -f /etc/X11/Xsession.d/52kali_noautomount
2946 fi
3047
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
3950 done
4051 fi
4152
1818 # the debian-policy package
1919
2020 drop_diversion() {
21 local file="$1"
2122 dpkg-divert --rename --package kali-defaults \
22 --divert $2 \
23 --remove $1
23 --divert "$file.original" \
24 --remove $file
2425 }
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
2532
2633 case "$1" in
2734 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
3236 rm -f $file
3337 drop_diversion $file $file.original
3438 done
1313 # the debian-policy package
1414
1515 setup_diversion() {
16 # $1: is file to divert, $2 is path to divert to
16 local file="$1"
1717 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"
2620 }
2721
28 TO_DIVERT="
22 FILES_TO_DIVERT="
2923 /etc/skel/.bashrc
3024 /etc/xdg/autostart/gnome-software-service.desktop
3125 /usr/share/firefox-esr/distribution/distribution.ini
32 "
26 " # END FILES_TO_DIVERT
3327
3428 case "$1" in
3529 install)
36 setup_diversions $TO_DIVERT
30 for file in $FILES_TO_DIVERT; do
31 setup_diversion $file
32 done
3733 ;;
3834
3935 upgrade)
40 if dpkg --compare-versions "$2" lt 0.8; then
41 setup_diversions /etc/skel/.bashrc
42 fi
4336 if dpkg --compare-versions "$2" eq 2016.2.2; then
4437 rm -f /etc/udev/rules.d/73-usb-net-by-mac.rules
4538 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
5246 ;;
5347
5448 abort-upgrade)
0 /etc/skel/.bashrc
1 /etc/xdg/autostart/gnome-software-service.desktop
2 /usr/share/firefox-esr/distribution/distribution.ini