summaryrefslogtreecommitdiff
path: root/src/mkinitramfs-samizdat
diff options
context:
space:
mode:
Diffstat (limited to 'src/mkinitramfs-samizdat')
-rwxr-xr-xsrc/mkinitramfs-samizdat85
1 files changed, 0 insertions, 85 deletions
diff --git a/src/mkinitramfs-samizdat b/src/mkinitramfs-samizdat
deleted file mode 100755
index c2e6141..0000000
--- a/src/mkinitramfs-samizdat
+++ /dev/null
@@ -1,85 +0,0 @@
1#!/bin/bash
2if [ "$(id -u)" != 0 ]
3then
4 exec sudo -- "$0" "$@"
5 exit 1
6fi
7
8loudly()
9{
10 (set -x
11 "$@")
12}
13
14deb_arch()
15{
16 dpkg-architecture -q DEB_HOST_ARCH
17}
18
19up_to_date()
20{
21 local found
22 [ -e "$1" ] || return
23 [ -z "$FORCE_BUILD" ] || return
24 found=$(find "$samizdat_initramfs_conf_dir" \
25 "$samizdat_initrd_files_dir" \
26 -type f -newer "$1" -print -quit) || return
27 [ -z "$found" ]
28}
29
30build_image()
31{
32 OUTPUT=/boot/initrd.img-$1
33 # Always regenerate when --system specified.
34 # Otherwise, only regenerate if it appears dependencies changed.
35 if ! up_to_date "$OUTPUT"
36 then
37 /usr/sbin/mkinitramfs \
38 -d "$samizdat_initramfs_conf_dir" \
39 -o "$OUTPUT" \
40 -k "$1" || return
41 fi
42 loudly ln -sf "${OUTPUT#/}" /initrd.img
43}
44
45. samizdat-paths.sh
46
47OUTPUT_TAG=
48FORCE_BUILD=
49while [ $# -gt 0 ]
50do
51 case "$1" in
52 -t|--tag) OUTPUT_TAG=.samizdat;;
53 -f|--force) FORCE_BUILD=y;;
54 --) shift; break;;
55 -*) exit 1;;
56 *) break;;
57 esac
58 shift
59done
60
61if [ "$1" ]
62then
63 k=/boot/vmlinuz-$1
64 if ! [ -e "$k" ]
65 then
66 printf 'Error: No such file: %s\n' "$k" >&2
67 exit 1
68 fi
69 build_image "$1$OUTPUT_TAG" || exit
70 ln -sf "${k#/}" /vmlinuz
71elif [ -L /vmlinuz ]
72then
73 l=$(readlink /vmlinuz)
74 mv=${l#boot/vmlinuz-}
75 for v in "$mv" "$mv-$(deb_arch)"
76 do
77 [ -e "/boot/vmlinuz-$v" ] || continue
78 build_image "$v"
79 exit
80 done
81 exit 1
82else
83 printf 'Error: Could not determine kernel version. Create /vmlinuz or specify a version.' >&2
84 exit 1
85fi