File: kmod.postinst

package info (click to toggle)
kmod 23-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 2,524 kB
  • ctags: 1,705
  • sloc: ansic: 14,537; xml: 1,848; makefile: 593; sh: 214; python: 7
file content (63 lines) | stat: -rw-r--r-- 1,596 bytes parent folder | download | duplicates (3)
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
#!/bin/sh -e

create_etc_modules() {
  [ -e /etc/modules ] && return 0
  cat <<END > /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

END
  chmod 644 /etc/modules
}

# move the modules parameters from /etc/modules to a new file in modprobe.d
convert_etc_modules() {
  if dpkg --compare-versions "$2" ge "18-2"; then
    return
  fi

  [ -e /etc/modules ] || return 0

  if [ -e /etc/modprobe.d/etc-modules-parameters.conf ]; then
    echo "/etc/modprobe.d/etc-modules-parameters.conf already exists."
    return
  fi

  perl -e '
  use warnings;
  use strict;

  my @parameters;
  while (<>) {
    /^# Parameters can be specified after the module name\.$/ && next;
    push(@parameters, $1) if s/^( (\s* \w+) \s+ \w.* )$/$2/x;
    print $_;
  }
  exit 0 if not @parameters;

  open(OUT, "> /etc/modprobe.d/etc-modules-parameters.conf") or die "open: $!";
  print OUT "# These parameters have been moved from /etc/modules by the kmod package.\n\n";
  print OUT "options $_\n" foreach @parameters;
  close OUT or die "close: $!";
  ' < /etc/modules > /etc/modules.kmod-postinst

  # replace the old file if it has been changed
  if cmp --quiet /etc/modules /etc/modules.kmod-postinst; then
    rm /etc/modules.kmod-postinst
  else
    mv /etc/modules.kmod-postinst /etc/modules
  fi
}

case "$1" in
  configure)
  create_etc_modules
  convert_etc_modules "$@"
esac

#DEBHELPER#

exit 0