#!/bin/ash 
#240308 sfs
H="-H" #4UIRD
UIRD(){
    SYSMNT="`awk -F= '/^SYSMNT=/ {print $2}' /etc/initvars`"
    lye="`mount |awk '/\'$SYSMNT'\/layer-base\/0 / {print $1}'`" 
    part="`findmnt -lnf "$lye" -o TARGET`"
    ln -sf "$part" /mnt/home
    mkdir -p /mnt/live/memory &&
	ln -sf /"$SYSMNT"/bundles /mnt/live/memory/images &&
	ln -sf /"$SYSMNT"/changes /mnt/live/memory/changes
}
D(){
[ -d /mnt/live/memory/images ] || return #не porteus-initrd
#for d in $(find $H /mnt/live/memory/images/*/usr/lib/modules/`uname -r`/kernel -type f -wholename "*.ko" |egrep -v '/mnt/live/memory/images/000-kernel') ;do
#for d in $(find $H /mnt/live/memory/images/*/lib/modules/*`uname -r` -type f -wholename "*.ko" |egrep -v '/mnt/live/memory/images/000-kernel') ;do
#for d in $(find $H /mnt/live/memory/images/*/lib/modules/*`uname -r` -type f \( -name "*.ko" -o  -name "*.ko.gz"  -o -name "*.ko.xz" \) 2>/dev/null |egrep -v '/mnt/live/memory/images/000-kernel') ;do

#for d in $(find $H /mnt/live/memory/images/*/lib/modules/*`uname -r` -type f \( -name "*.ko" -o  -name "*.ko.gz"  -o -name "*.ko.xz" \) 2>/dev/null |egrep -v '/mnt/live/memory/images/000-kernel|/mnt/live/memory/images/089-') ;do
for d in $(find $H /mnt/live/memory/images/*/lib/modules/*`uname -r` -type f \( -name "*.ko" -o  -name "*.ko.gz"  -o -name "*.ko.xz" \) 2>/dev/null |egrep -v '/mnt/live/memory/images/(000-kernel|089-|001-)') ;do
#    d1="`basename $d .ko`"
    d1="`basename $d |sed 's/.[gx]z$//'`"
    [ "`cat /etc/modprobe.d/*.conf |awk '/^blacklist / && / '$d1'$/ {print $2}'`" ] && continue 
    [ "`lsmod |egrep '^'$d1' '`" ] && continue #модуль уже загружен -> следующий d
    if [ ! "$dm" ];then #если dm пустой, т.е. depmod не делали
        sudo insmod "$d" && continue
	#sudo depmod -A && dm=1
	sudo depmod  && dm=1
    fi
    sudo modprobe "$d1"
done
}

OldXX(){
gdk-pixbuf-query-loaders --update-cache 2>/dev/null #&
[ "`find $H /mnt/live/memory/images -type d -wholename "*/usr/share/mime/*" |egrep -v '^/mnt/live/memory/images/0'`" ] &&  update-mime-database /usr/share/mime 2>/dev/null #&
#    update-desktop-database 2>/dev/null #&
#    gtk-update-icon-cache /usr/share/icons/hicolor 2>/dev/null #&
  update-desktop-database -q
#  gtk-update-icon-cache -q /usr/share/icons/hicolor
  gtk-update-icon-cache -f -i -q /usr/share/icons/hicolor
[ "`find $H /mnt/live/memory/images -type d -wholename "*/usr/share/glib-2.0/schemas*" |egrep -v '^/mnt/live/memory/images/001-'`" ] && glib-compile-schemas /usr/share/glib-2.0/schemas
}

ldconfig
[ -f /etc/initvars ] && UIRD
new(){
#[ "$(find "$1"{,/usr{,/local,/X11R6}}/lib -type f -name "*.so" 2>/dev/null)" ] && ldconfig #&
if [ ! "$um" ]; then
    [ -d "$1/usr/share/mime/" ] && um=1 && update-mime-database /usr/share/mime &
fi
if [ ! "$ug" ]; then
    [ -d "$1/usr/lib/gdk-pixbuf-2.0/" ] && ug=1  && gdk-pixbuf-query-loaders --update-cache &
fi
if [ ! "$ui" ]; then
    [ -d "$1/usr/share/icons/hicolor/" ] && ui=1 && gtk-update-icon-cache -f -i -q /usr/share/icons/hicolor &
fi
if [ ! "$us" ]; then
    [ -d "$1/usr/share/glib-2.0/schemas/" ]  && us=1 && glib-compile-schemas /usr/share/glib-2.0/schemas/ &
fi
if [ ! "$ua" ]; then
    if [ -d "$1/usr/share/applications/" -o -d "$1/usr/local/share/applications/" ] ; then 
	ua=1
	update-desktop-database -q &
	touch /usr/share/applications/screensavers &
    fi
fi
if [ ! "$fcneed" ]; then
    for font_dir in /usr/share/fonts{,/default}/TTF  /usr/X11R6/lib/X11/fonts/TTF ; do
	if [ -d "$1/${font_dir}" ]; then
	    fcneed=on
	    mkfontscale ${font_dir} & 
	    mkfontdir ${font_dir} &
	fi
    done
[ $fcneed ] && fc-cache -f -s &
fi
}

if [ "`mount |grep -E '^overlay on '`" ];then
    new
else
    #for i in `ls -d /mnt/live/memory/images/*.pfs |egrep -v '^/mnt/live/memory/images/00' |egrep -v '^/mnt/live/memory/images/089'` ;do
    for i in `ls -d /mnt/live/memory/images/*.pfs |egrep -v '^/mnt/live/memory/images/00' ` ;do
	new "$i"
    done
    [ "`full |grep FULL`" ] && sudo /usr/local/bin/pfs pfs_update_caches 2>/dev/null &
fi
D
dpkg-fix &
touch /etc/fstab && sudo systemctl daemon-reload #fix mount: (hint) your fstab has been modified
[ -s /mnt/livemedia ] && ln -s /mnt/livemedia /mnt/home #UIRD
exit 0