-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathrelink-extramodules-version
More file actions
executable file
·40 lines (35 loc) · 1.04 KB
/
Copy pathrelink-extramodules-version
File metadata and controls
executable file
·40 lines (35 loc) · 1.04 KB
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
#!/bin/bash
relink-version() {
# searching for latest installed version
local installed=$(pacman -Qqs linux-rolling_ | sort -n | tail -n 1)
if [ ! "$installed" ]; then
# no installed linux-rolling_ left
return 1
fi
local package_version=${installed##linux-rolling_}
local package_release=${package_version##*_}
package_version=${package_version%_*}
package_version=${package_version//_/.}
local f="/usr/lib/modules/extramodules-ARCH/version-$package_version-$package_release"
if [ ! -e "$f" ]; then
echo "Can't find $f. It must belong to $installed"
return 2
fi
ln -sf "$f" /usr/lib/modules/extramodules-ARCH/version
}
linux-rolling-version-removed() {
if [ "$(readlink "/usr/lib/modules/extramodules-ARCH/version")" != "$1" ]; then
# we already have "version" file linked to some installed kernel
return 0
fi
relink-version
}
while read -r line; do
if [[ "$line" == *version ]]; then
# plain "linux" package was removed
relink-version
else
# linux-rolling_* package was removed
linux-rolling-version-removed "/$line"
fi
done