New version of build scripts
[maemo-efl] / trunk / scripts / repository-functions.sh
1 #!/bin/sh
2
3 ###########################################################
4 # Maemo-efl building script
5 # Repository functions definitions
6 #
7 # Note: helper-functions.sh and var-definitions.sh needed.
8 ###########################################################
9
10 function clone_repository() {
11     local repo
12     repo=$1
13     $__git_clone $repo.git >> $__output_file 2>&1
14     return $?
15 }
16
17 function update_repository() {
18     local repo
19     repo=$1
20
21     if [ ! -d $repo ]; then
22         error "  Trying to update invalid repository"
23     fi
24
25     cd $repo
26     $__git_pull >> $__output_file 2>&1 || return 1
27     cd - > /dev/null 2>&1
28
29     return 0
30 }
31
32 function clean_repository() {
33     local repo
34     repo=$1
35
36     if [ ! -d $repo ]; then
37         error "  Trying to clean invalid repository"
38     fi
39
40     cd $repo
41     $__git_reset >> $__output_file 2>&1 || return 1
42     $__git_clean >> $__output_file 2>&1 || return 1
43     cd - > /dev/null 2>&1
44
45     return 0
46 }
47
48 function get_sources() {
49     local modules
50     local repo
51     modules=`echo $1|$__sed -e 's/:/ /g'`
52     repo=$2
53
54     for module in $modules; do
55
56         if [ ! -d $module ]; then
57             error "Directory $module does not exist."
58         fi
59
60         cd $module
61
62         if [ -d $module/.git ]; then
63             if [ ! $__update_repositories -eq 0 ]; then
64                 log_to_file "Updating existing repository at $PWD/$module"
65
66                 msg_begin "  Updating $module repository"
67                 update_repository $module
68                 msg_end $?
69             else
70                 log_to_file "Skipping update of $module repository"
71             fi
72         elif [ -d $module ]; then
73             log_to_file "Removing invalid repository at $PWD/$module"
74             rm -rf $module
75         fi
76
77         if [ ! -d $module ]; then
78             msg_begin "  Cloning $repo/$module.git"
79             clone_repository $repo/$module
80             msg_end $?
81         fi
82
83         cd ..
84     done
85 }
86