summaryrefslogtreecommitdiffstats
path: root/src/yum/test/test_common.sh
blob: 25d931f3071ea036f9eaba7c86e15219019b1e25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/bin/bash

if [ -z $CLASS_NAME ]; then
    echo "variable CLASS_NAME must be defined"
    exit 1
fi


url="http://localhost:5988/root/cimv2"
op="${url}:${cls}"

fedora_release=`sed 's/Fedora release\s*\([0-9]\+\).*/\1/' \
    /etc/fedora-release`

function make_nevra() {
    # accepts arguments: name, epoch, ver, rel, arch
    # in this order
    printf "%s-%s:%s-%s.%s" $@
}

function make_rpm_name() {
    local name epoch ver rel arch;
    if [ $# -ge 5 ]; then
        read name epoch ver rel arch <<< "$@"
    else
        read name ver rel arch <<< "$@"
    fi
    [ $# -gt 5 ] && arch=`echo $arch | cut -d \  -f 1`
    if [ -n "$epoch" -a "$epoch" != 0 ]; then
        epoch="${epoch}:"
    else
        epoch=""
    fi
    printf "%s-%s%s-%s.%s.rpm" "$name" "$epoch" "$ver" "$rel" "$arch"
}

function is_installed() {
    rpm -q "$1" >/dev/null 
}

function is_installed_nevra() {
    local name epoch ver rel arch;
    read name epoch ver rel arch <<< "$@"

    rpm -qi name | sed -n 's/^\(Name\|Epoch\|Version\|Release\|Architecture\)\s*:\s*\(.*\)/\1 \2/p' | \
        while read l; do
            read k v <<< "$l"
            read ${k,,} <<< "$v"
            [ $k == "version" ] && [ -z "$epoch" ] && echo "0" # print epoch
            echo $v
        done | set --
    [ $epoch == $2 ] && [ $ver == $3 ] && [ $rel == $4 ] && [ $arch == $5 ]
}

function install_pkg() {
    if [ $# == 1 ]; then
        sudo yum -y install $1 || exit 1
    else
        local rpm_name=`make_rpm_name "$@"`
        if ! [ -f "$rpm_name" ]; then
            if [ -f "$dir/$rpm_name" ]; then
                rpm_name="$dir/$rpm_name"
            fi
        fi
        if ! [ -e "$rpm_name" ]; then
            sudo yum -y install "$1"
        else
            sudo rpm -i "$rpm_name"
        fi
    fi
}

function remove() {
    sudo rpm --allmatches -e "$1"
}

function wbemerr() {
    wbemcli "$@" |& sed 's:<br\s*/\?>:\n:g'
}