update_versions.sh 1.74 KB
Newer Older
1 2 3 4 5 6 7 8 9
#!/bin/bash

# TODO: use epm from the sources

fatal()
{
    exit 1
}

Vitaly Lipatov's avatar
Vitaly Lipatov committed
10
[ -n "$LOGDIR" ] || LOGDIR=~
11 12 13
TDIR=$LOGDIR/epm-play-versions
EDIR=$LOGDIR/epm-errors
LDIR=$LOGDIR/epm-logs
14 15 16 17 18 19
mkdir -p $TDIR/ $EDIR/ $LDIR/

rm -f $EDIR/errors.txt

EPM=$(realpath $(dirname $0)/../bin/epm)

20 21 22 23 24 25 26
install_app()
{
    local app="$1"
    local applog="$1"
    local alt="$2"
    [ -n "$alt" ] && applog="$applog.$alt"

27 28 29 30 31
    echo -n "epm play $app $alt ..."
    $EPM play --verbose --auto $app $alt >$EDIR/$applog 2>&1
    local RES=$?
    [ "$RES" = 0 ] && echo "OK" || echo "FAILED"
    [ "$RES" = 0 ] || return $RES
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

    mv -f $EDIR/$applog $LDIR/$applog

    local pkgname="$($EPM play --package-name $app $alt)"
    $EPM print version for package $pkgname > $TDIR/$pkgname 2>$EDIR/$pkgname && rm -f $EDIR/$pkgname
    [ -s $TDIR/$pkgname ] || echo "empty file $TDIR/$pkgname" >>$EDIR/errors.txt
}

install_app_alt()
{
    local app="$1"
    local productalt="$($EPM play --product-alternatives $app)"

    if [ -z "$productalt" ] ; then
        install_app $app
        return
    fi

    # оставляем дефолтный вариант в конце в системе
    for i in $productalt "" ; do
        $EPM play --remove --auto $app
        install_app $app $i
    done
}

if [ -n "$1" ] ; then
    install_app_alt "$1"
    exit
fi

62
distr="$($EPM print info -s)"
63 64
# install/update all
$EPM play --list-all --short | while read app ; do
65 66
    # hack for broken gitlab-runner
    [ "$distr" != "alt" ] && [ "$app" = "gitlab-runner" ] && continue
67
    install_app_alt $app </dev/null
68 69
done

70 71 72 73 74 75 76
commit_git()
{
    cd "$1" || return
    [ -d .git ] || git init
    git add *
    git commit -m "updated"
}
77

78 79 80
commit_git $TDIR
commit_git $EDIR
commit_git $LDIR
81 82 83 84 85

cd $TMP
rm -rf tmp.* rpm-tmp.*

exit 0