update_versions.sh 2.13 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
mkdir -p $TDIR/ $EDIR/ $LDIR/

rm -f $EDIR/errors.txt

18 19
# run with EPM=/usr/bin/epm to test package
[ -n "$EPM" ] || EPM=$(realpath $(dirname $0)/../bin/epm)
20

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

28 29
    echo -n "epm play $playopt $app $alt ..."
    $EPM play $playopt --verbose --auto $app $alt >$EDIR/$applog 2>&1
30 31 32
    local RES=$?
    [ "$RES" = 0 ] && echo "OK" || echo "FAILED"
    [ "$RES" = 0 ] || return $RES
33 34 35 36 37 38 39 40 41 42 43

    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"
44
    local productalt="$($EPM play $playopt --product-alternatives $app)"
45 46 47 48 49 50 51 52

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

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

58 59 60 61 62
if [ "$1" = "--ipfs" ] ; then
    playopt="$1"
    shift
fi

63 64 65 66 67
if [ "$1" = "--force" ] ; then
    playopt="$playopt $1"
    shift
fi

68 69 70 71 72
if [ "$1" = "--slow" ] ; then
    slow="60"
    shift
fi

73 74 75 76 77
if [ -n "$1" ] ; then
    install_app_alt "$1"
    exit
fi

78
distr="$($EPM print info -s)"
79
# install/update all
80
$EPM play $playopt --list-all --short | while read app ; do
81 82
    # hack for broken gitlab-runner
    [ "$distr" != "alt" ] && [ "$app" = "gitlab-runner" ] && continue
83
    install_app_alt $app </dev/null
84
    [ -n "$show" ] && sleep $slow
85 86
done

87
# save eepm version
88
$EPM --short --version > $TDIR/eepm
89

90 91 92 93 94 95 96
commit_git()
{
    cd "$1" || return
    [ -d .git ] || git init
    git add *
    git commit -m "updated"
}
97

98 99 100
commit_git $TDIR
commit_git $EDIR
commit_git $LDIR
101 102 103 104 105

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

exit 0