60 lines
1.7 KiB
Bash
Executable File
60 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# Author: kenjc@rock-chips.com
|
|
# Support for create all projects in gerrit.
|
|
# Projects list could be generated from the following cmd:
|
|
# USE:
|
|
# ./create_gerrit_projects.sh ~/AOSP_12/.repo/manifests/default.xml
|
|
|
|
PORT=29418
|
|
HOST=10.10.10.29
|
|
DEFAULT_OWNERS=android-owners
|
|
DEFAULT_PARENT=Android-Projects
|
|
|
|
LOCAL_LOG_FILE=/dev/null
|
|
|
|
PROJECT_LIST_FILE=$1
|
|
gerrit_projects_array={}
|
|
local_project_array={}
|
|
|
|
echo "input file: $PROJECT_LIST_FILE"
|
|
|
|
gerrit_projects_array=($(ssh -p $PORT $HOST gerrit ls-projects))
|
|
gerrit_projects_num=${#gerrit_projects_array[@]}
|
|
echo "gerrit NUM: $gerrit_projects_num"
|
|
|
|
local_project_array=($(gitolite_tool -i $PROJECT_LIST_FILE --prefix "android/"))
|
|
local_project_num=${#local_project_array[@]}
|
|
echo "local NUM: $local_project_num"
|
|
|
|
create_project() {
|
|
project_to_be_create=$1
|
|
echo "ssh -p $PORT $HOST gerrit create-project $project_to_be_create --owner $DEFAULT_OWNERS --parent $DEFAULT_PARENT" >> $LOCAL_LOG_FILE
|
|
echo "ssh -p $PORT $HOST gerrit create-project $project_to_be_create --owner $DEFAULT_OWNERS --parent $DEFAULT_PARENT"
|
|
ssh -p $PORT $HOST gerrit create-project $project_to_be_create --owner $DEFAULT_OWNERS --parent $DEFAULT_PARENT
|
|
}
|
|
|
|
exist_in_gerrit() {
|
|
project_to_be_check=$1
|
|
for tmp_project0 in "${gerrit_projects_array[@]}"
|
|
do
|
|
if [[ "$tmp_project0" = "$project_to_be_check" ]]; then
|
|
return 1
|
|
fi
|
|
done
|
|
return 0
|
|
}
|
|
|
|
create_all_projects() {
|
|
for tmp_project1 in "${local_project_array[@]}"
|
|
do
|
|
exist_in_gerrit $tmp_project1
|
|
if [[ "1" = $? ]]; then
|
|
echo "found $tmp_project0" >> $LOCAL_LOG_FILE
|
|
else
|
|
create_project $tmp_project1
|
|
fi
|
|
done
|
|
}
|
|
|
|
create_all_projects
|