#!/bin/sh
#240420 sfs
dpkg=/opt/yandex/browser-lib/dpkg
[ -e $dpkg ] || exit 1
inet-test 5 || exit 1
www="https://repo.yandex.ru/yandex-browser/deb/pool/main/y/yandex-browser-stable/"
b="`basename "$0" -upd`"
#echo $b ;exit
gtk="-gtk3"
#v="`$b-stable --no-sandbox -V |awk -F. '{print $3"."$4"."$5}'`" 
#p="`losetup | awk '/\/'$b'-/ && /.pfs$/ {print $6}'`"
p="`losetup | awk '/\/'$b'-/  && ! /.old / {print $6}'`"
v="`basename "$p" | awk -F- '{print $5}' |sed 's/_64//'`"
#[ "$v" ] || exit 1
wh=/tmp/`basename $0`
#echo $p v=$v ;exit

pfs1="/mnt/.`basename "$p"`" 
[ -d "$pfs1" ] || pfs1="/mnt/live/memory/images/`basename "$p"`"
[ -d "$pfs1" ] && pfsd="$pfs1"
pfs1="/mnt/.`basename "$p"`"
[ -d "$pfs1"  ] && pfsd="$pfs1"
[ ! "$pfsd" ] && ntf -a "Не удалось обнаружить" "${b}*.pfs " && exit 1
#echo $pfsd ;exit
D(){
wget "$www"  -O $wh &&
#    v1="`awk -F'\"' '/_amd64.deb/ {print $2}' $wh |tail -1 |awk -F_ '{print $2}' |awk -F- '{print $1}'`"
    v1="`awk -F'\"' '/_amd64.deb/ {print $2}' $wh |sort -V |tail -1 |awk -F_ '{print $2}' |awk -F- '{print $1}'`"
    f="`awk -F'\"' '/_amd64.deb/ {print $2}' $wh |sort -V |tail -1`"
[ ! "$v1" ] && ntf -a "Автообновление  $b " "Ошибка! Не удалось определить текущую версию $b" && exit 1

#echo $f $v $v1 ;exit
rm $wh 
#v1="`echo $f |awk -F- '{print $2}' |sed 's/.linux//'`"
[ "$v" = "$v1" ] && echo "Обновление не требуется" && exit 0
ntf -q "Обновить `basename "$p"`" "до версии $v1 ?" || exit 1

f="$www$f"
#echo $f ;exit
wget-progress3 /tmp p $f
[ ! -f /tmp/p ] && ntf -a "Не удалось загрузить" "$f " && exit 1
}
D

[ "`uname -m`" = "x86_64" ] && a="_64"
pt="`dirname "$p"`/$b$gtk-p-$v1$a-au01"
bn="yandex/browser"
cp -R "$pfsd" "$pt"  &&
    rm -R "$pt/opt/$bn" 
#    rm -R "$pt/opt/$bn-beta" 
wt -start "Распаковка `basename $f`"
#xz -dc /tmp/p  |tar xvf - && rm /tmp/p && wt -kill
$dpkg -x /tmp/p "$pt"-tmp && rm /tmp/p && wt -kill
[ ! -d "$pt"-tmp ] && ntf -a "Ошибка распаковки" "`basename $f` " && exit 1
#exit
mv "$pt"-tmp/opt/$bn "$pt"/opt/`dirname $bn` && rm -R "$pt"-tmp
cd "$pt"/opt/$bn/locales/ &&
rm `ls -1 |grep -v ru`

fu="$pt/opt/$bn/update-ffmpeg"
#fu=/tmp/browser/update-ffmpeg
fv="`awk -F'\"' '/SUITABLE_URLS=/ {print $4}' "$fu"`"
OLD(){
fw="`awk -F= '/^CODECS_JSON_URL=/ {print $2}'  "$fu" |tr -d "\'" `"
wget-progress3 /tmp cod $fw &&
#ff="`grep "$fv" -A 2 /tmp/cod |egrep -v '^}|]' |tail -1| tr -d '\"'`" &&
ff="`grep "$fv" -A 1 /tmp/cod |grep http| tr -d '\"'`" &&
echo "ffmpeg $fv $fw $ff" &&
    mkdir -p /tmp/libf &&
    wget-progress3 /tmp/libf  libffmpeg.deb $ff
    $dpkg -x /tmp/libf/libffmpeg.deb /tmp/libf &&
    mv /tmp/libf/usr/lib/chromium-browser/libffmpeg.so `dirname $fu` ||
    { ntf -a "Yandex-browser" "Ошибка обновления libffmpeg"  && exit 1 ; }
#exit
rm /tmp/cod
rm -R /tmp/libf
}
echo "yandex-browser-upd-ff "$pt/opt/$bn" "$fv""
yandex-browser-upd-ff "$pt/opt/$bn" "$fv" || exit 1

pfs="`dirname "$p"`/$b$gtk-p-$v1$a-au01.pfs"
cd "`dirname "$p"`" &&
    wt "mksquashfs "`dirname "$p"`/$b$gtk-p-$v1$a-au01"  "$pfs" -b 512K -comp zstd -Xcompression-level 18" && 
    rm -R "`dirname "$p"`/$b$gtk-p-$v1$a-au01" &&    
    mv "$p" "$p.old"  

[ -f "$pfs" ] || exit 1
ntf -q "Закрыть все вкладки $b $v" "и загрузить  $v1 ?" || exit 1
killall yandex_browser
mnt_sfs "$pfs" &

