summaryrefslogtreecommitdiff
path: root/deploy
blob: 1cc38e199297fc99427eddcb74c123eb53e5dfbd (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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/bin/bash

usage()
{
    echo "Usage: `basename $0` [-h|--help] [-e|--emulator] [-d|--device]
    -h, --help      Show this message.
    -e, --emulator  Install on emulator (default).
    -d, --device    Install on device."
}

DEVS=($(sdb devices | tail -n+2))

if [ -z $DEVS ]
then
    echo "Please connect device or launch emulator."
    exit 1
fi

if [ -z $1 ]
then
    DEV=e
    ARCH=i586
else
    case $1 in
        -e|--emulator)
        DEV=e
        ARCH=i586
        ;;
        -d|--device)
        DEV=d
        ARCH=armv7l
        ;;
        -h|--help)
        ;&
        *)
        usage
        exit 1
        ;;
    esac
fi

push()
{
    GBS=~/GBS-ROOT
    ROOT=$GBS/local/BUILD-ROOTS/scratch.$ARCH.0

    if [ ! -e $ROOT/*.conf ]
    then
        echo "Build root is not ready at $ROOT."
        exit 1
    fi

    REPO=$(basename $ROOT/*.conf)
    REPO=${REPO%.*}
    RPMS=$GBS/local/repos/$REPO/$ARCH/RPMS

    if [ ! -e "$RPMS/$1" ]
    then
        echo "Can't find $1 in $RPMS. Run build first."
        exit 1
    fi

    echo "Pushing $1 into $2..."
    sdb -$DEV push "$RPMS/$1" "$2"  2> /dev/null
}

install()
{
    echo "Installing $2..."
    if [[ "$2" == lib* ]]
    then
        sdb -$DEV root on > /dev/null
        sdb -$DEV shell rpm -i --force "$1/$2" > /dev/null
        sdb -$DEV root off > /dev/null
    else
        sdb -$DEV shell pkgcmd -iqt rpm -p "$1/$2" > /dev/null
    fi
}

deploy()
{
    push "$1" "$2"
    install "$2" "$1"
    sdb -$DEV shell rm "$2/$1" > /dev/null
}

DEST=/home/developer
VER=$(grep Version: packaging/*.spec | awk '{print $2}')
REL=$(grep Release: packaging/*.spec | awk '{print $2}')
SUFFIX="$VER-$REL.$ARCH.rpm"
PKGS=($(grep %package packaging/*.spec | awk '{print $3}'))

if [ -z $PKGS ]
then
    PKG=$(grep Name: packaging/*.spec | awk '{print $2}')
    deploy "$PKG-$SUFFIX" "$DEST"
else
    echo "Current package contains several sub-packages:"
    for i in ${!PKGS[@]}
    do
        echo "$((i + 1)). ${PKGS[$i]}"
    done

    echo "Specify packages and order of installation (for example: 5 1):"
    read NUMS

    for i in $NUMS
    do
        deploy "${PKGS[$((i - 1))]}-$SUFFIX" "$DEST"
    done
fi
echo "Done."