mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-08-02 23:49:34 +08:00
65 lines
1.9 KiB
Bash
Executable File
65 lines
1.9 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
nonconf_files_of_pkg() {
|
|
local pkgname="$1"
|
|
if [ -s /rom/usr/lib/opkg/info/${pkgname}.conffiles ]; then
|
|
grep -hvxFf /rom/usr/lib/opkg/info/${pkgname}.conffiles \
|
|
/rom/usr/lib/opkg/info/${pkgname}.list
|
|
else
|
|
cat /rom/usr/lib/opkg/info/${pkgname}.list
|
|
fi
|
|
}
|
|
|
|
reset_pkg() {
|
|
local pkgname="$1"
|
|
local line
|
|
local dep
|
|
local deps
|
|
echo "${pkgname}" | grep -q '^kernel$
|
|
^libc$
|
|
^libgcc1$
|
|
^libatomic1$
|
|
^busybox$' && return
|
|
if [ -f /rom/usr/lib/opkg/info/${pkgname}.control -a \
|
|
\( -e /overlay/upper/usr/lib/opkg/info/${pkgname}.control -o \
|
|
-e /ext_overlay/upper/usr/lib/opkg/info/${pkgname}.control \) ]; then
|
|
echo "reset ${pkgname}"
|
|
if [ -f /rom/usr/lib/opkg/info/${pkgname}.list ]; then
|
|
nonconf_files_of_pkg "${pkgname}" | while read; do
|
|
line="$REPLY"
|
|
rm -f "/overlay/upper/${line}" "/ext_overlay/upper/${line}"
|
|
done
|
|
rm -f /overlay/upper/usr/lib/opkg/info/${pkgname}.list /ext_overlay/upper/usr/lib/opkg/info/${pkgname}.list
|
|
fi
|
|
deps=`grep '^Depends: ' /rom/usr/lib/opkg/info/${pkgname}.control | sed -e 's/^Depends: //' -e 's/ ([^)]*)//g' -e 's/,/ /g'`
|
|
# avoid loop deps
|
|
rm -f /overlay/upper/usr/lib/opkg/info/${pkgname}.control /ext_overlay/upper/usr/lib/opkg/info/${pkgname}.control
|
|
for dep in $deps ; do
|
|
reset_pkg "$dep"
|
|
done
|
|
rm -f /overlay/upper/usr/lib/opkg/info/${pkgname}.* /ext_overlay/upper/usr/lib/opkg/info/${pkgname}.*
|
|
fi
|
|
}
|
|
|
|
ls_all_rom_pkgs() {
|
|
( cd /rom/usr/lib/opkg/info ; find . -maxdepth 1 -name '*.control' | sed -E 's#./(.*).control#\1#g' )
|
|
}
|
|
|
|
reset_all_rom() {
|
|
local line
|
|
ls_all_rom_pkgs | while read; do
|
|
line="$REPLY"
|
|
reset_pkg "$line"
|
|
done
|
|
}
|
|
|
|
reset_all_rom
|
|
|
|
touch /overlay/upper/usr/lib/opkg/.upgrading
|
|
|
|
echo "done, please reboot, it will reboot in 10s"
|
|
|
|
sleep 10
|
|
reboot
|
|
|