aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/bitbake-prserv-tool
blob: 28c2416bfe0d8a68a467c8beb0db5f3ee65f24c0 (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
#!/usr/bin/env bash

help ()
{
    base=`basename $0`
    echo -e "Usage: $base command"
    echo "Avaliable commands:"
    echo -e "\texport <file.conf>: export and lock down the AUTOPR values from the PR service into a file for release."
    echo -e "\timport <file.conf>: import the AUTOPR values from the exported file into the PR service."
}

clean_cache()
{
    s=`bitbake -e | grep ^CACHE= | cut -f2 -d\"`
    if [ "x${s}" != "x" ]; then
        rm -rf ${s}
    fi
}

do_export ()
{
    file=$1
    [ "x${file}" == "x" ] && help && exit 1
    rm -f ${file}

    clean_cache
    bitbake -R conf/prexport.conf -p
    s=`bitbake -R conf/prexport.conf -e | grep ^PRSERV_DUMPFILE= | cut -f2 -d\"`
    if [ "x${s}" != "x" ];
    then
       [ -e $s ] && mv -f $s $file && echo "Exporting to file $file succeeded!"
       return 0
    fi
    echo "Exporting to file $file failed!"
    return 1
}

do_import ()
{
    file=$1
    [ "x${file}" == "x" ] && help && exit 1

    clean_cache
    bitbake -R conf/primport.conf -R $file -p
    ret=$?
    [ $ret -eq 0 ] && echo "Importing from file $file succeeded!" || echo "Importing from file $file failed!"
    return $ret
}

do_migrate_localcount ()
{
    df=`bitbake -R conf/migrate_localcount.conf -e | \
                grep ^LOCALCOUNT_DUMPFILE= | cut -f2 -d\"`
    if [ "x${df}" == "x" ];
    then
        echo "LOCALCOUNT_DUMPFILE is not defined!"
        return 1
    fi

    rm -rf $df
    clean_cache
    echo "Exporting LOCALCOUNT to AUTOINCs..."
    bitbake -R conf/migrate_localcount.conf -p
    [ ! $? -eq 0 ] && echo "Exporting to file $df failed!" && exit 1

    if [ -e $df ];
    then
        echo "Exporting to file $df succeeded!"
    else
        echo "Exporting to file $df failed!"
        exit 1
    fi
    
    echo "Importing generated AUTOINC entries..."
    [ -e $df ] && do_import $df

    if [ ! $? -eq 0 ]
    then
        echo "Migration from LOCALCOUNT to AUTOINCs failed!"
        return 1
    fi

    echo "Migration from LOCALCOUNT to AUTOINCs succeeded!"
    return 0
}

[ $# -eq 0 ] && help  && exit 1

case $1 in
export)
    do_export $2
    ;;
import)
    do_import $2
    ;;
migrate_localcount)
    do_migrate_localcount
    ;;
*)
    help
    exit 1
    ;;
esac
pan>? branch_git = attribute module { xsd:anyURI }?, attribute checkoutdir { text }? branch_tarball = attribute module { xsd:anyURI }, attribute version { text }, attribute size { text }?, attribute md5sum { text }?, element patch { attribute file { text }, attribute strip { text }? }* branch = element branch { attribute repo { text }?, (branch_cvs|branch_svn|branch_arch|branch_darcs|branch_git|branch_tarball) } autotools = element autotools { branch & attribute autogen-sh { text }? & attribute autogenargs { text }? & attribute makeargs { text }? & attribute supports-non-srcdir-builds { boolean }? & common } metamodule = element metamodule { common } distutils = element distutils { branch & attribute supports-non-srcdir-builds { boolean }? & common } perl = element perl { branch & attribute makeargs { text }? & common } tarball = element tarball { attribute version { text }, attribute checkoutdir { text }?, attribute autogenargs { text }?, attribute makeargs { text }?, attribute supports-non-srcdir-builds { boolean }?, (element source { attribute href { text }, attribute size { text }?, attribute md5sum { text }? } & element patches { element patch { attribute file { text }, attribute strip { text }? }+ }? & common) } mozillamodule = element mozillamodule { attribute module { text }?, attribute revision { text }?, attribute checkoutdir { text }?, attribute autogenargs { text }?, attribute makeargs { text }?, attribute cvsroot { text }?, attribute root { text }?, common }