diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | Makefile | 49 |
2 files changed, 51 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d74def1 --- /dev/null +++ b/.gitignore | |||
@@ -0,0 +1,2 @@ | |||
1 | *.deb | ||
2 | wget-log.txt | ||
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a364f88 --- /dev/null +++ b/Makefile | |||
@@ -0,0 +1,49 @@ | |||
1 | SHELL = bash | ||
2 | |||
3 | snapshot_uri_base = https://snapshot.debian.org/package | ||
4 | |||
5 | kernel_version != uname -r | ||
6 | kernel_package_name != dpkg -S /boot/vmlinuz-$(kernel_version) | sed 's/:.*//' | ||
7 | kernel_package_version != dpkg-query --showformat='$${Version}\n' -W "$(kernel_package_name)" | ||
8 | kernel_source_package != dpkg-query --showformat='$${source:Package}\n' -W "$(kernel_package_name)" | ||
9 | arch != dpkg-architecture -q DEB_HOST_ARCH | ||
10 | |||
11 | want_version = ${kernel_package_version} | ||
12 | want_package = linux-image-${arch} | ||
13 | wantvencoded != sed 's/-/%2B/g' <<< "${want_version}" | ||
14 | snapshot_uri = ${snapshot_uri_base}/${kernel_source_package}/${wantvencoded}/\#${want_package}_${want_version} | ||
15 | want_filename = ${want_package}_${want_version}_${arch}.deb | ||
16 | |||
17 | sudo != [ $$(id -u) = 0 ] || echo sudo | ||
18 | dpkg := $(sudo) dpkg | ||
19 | |||
20 | ifeq (,$(shell command -v hxprintlinks)) | ||
21 | $(shell $(sudo) apt install html-xml-utils >&2) | ||
22 | endif | ||
23 | |||
24 | ifeq (,$(shell command -v wget)) | ||
25 | $(shell $(sudo) apt install wget >&2) | ||
26 | endif | ||
27 | |||
28 | wanted_deb_uri != hxprintlinks "${snapshot_uri}" | \ | ||
29 | hxcopy -i "${snapshot_uri_base}" -o . | \ | ||
30 | hxclean | \ | ||
31 | hxselect -c -s '\n' 'a::attr(href)' | \ | ||
32 | grep -Fw -e '${want_filename}' | \ | ||
33 | head -1 | ||
34 | |||
35 | .PHONY: install | ||
36 | install: ${want_filename} | ||
37 | ${dpkg} -E -i $^ | ||
38 | echo "${want_package} hold" | ${dpkg} --set-selections | ||
39 | |||
40 | ${want_filename}: | ||
41 | flock wget-log.txt \ | ||
42 | wget -a wget-log.txt --show-progress -c '${wanted_deb_uri}' -O $@.partial | ||
43 | mv -T -- $@.partial $@ | ||
44 | |||
45 | info: | ||
46 | : '${want_package}' '${want_version}' | ||
47 | : '${want_filename}' | ||
48 | : '${wanted_deb_uri}' | ||
49 | dpkg -l linux-image\* | grep '^.i ' | ||