xref: /aosp_15_r20/tools/aadevtools/dev/clone_proj.sh (revision b32fbb6340ee6fe4a25d7b39d84085c084465677)
1*b32fbb63SXin Li#!/bin/bash
2*b32fbb63SXin Li
3*b32fbb63SXin Li# Copyright (C) 2020 The Android Open Source Project
4*b32fbb63SXin Li#
5*b32fbb63SXin Li# Licensed under the Apache License, Version 2.0 (the "License");
6*b32fbb63SXin Li# you may not use this file except in compliance with the License.
7*b32fbb63SXin Li# You may obtain a copy of the License at
8*b32fbb63SXin Li#
9*b32fbb63SXin Li#      http://www.apache.org/licenses/LICENSE-2.0
10*b32fbb63SXin Li#
11*b32fbb63SXin Li# Unless required by applicable law or agreed to in writing, software
12*b32fbb63SXin Li# distributed under the License is distributed on an "AS IS" BASIS,
13*b32fbb63SXin Li# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*b32fbb63SXin Li# See the License for the specific language governing permissions and
15*b32fbb63SXin Li# limitations under the License.
16*b32fbb63SXin Li
17*b32fbb63SXin Lireadme() {
18*b32fbb63SXin Li    echo '
19*b32fbb63SXin LiClone a git project for the unbundled development workflows in instead of
20*b32fbb63SXin Li    the whole Android repo
21*b32fbb63SXin Lie.g.
22*b32fbb63SXin LiGIT_REPO_URL="https://android.googlesource.com" \
23*b32fbb63SXin Li    PROJECT="platform/tools/aadevtools" \
24*b32fbb63SXin Li    WORK_DIR="$PWD" \
25*b32fbb63SXin Li    ./aadevtools/dev/clone_proj.sh
26*b32fbb63SXin Li'
27*b32fbb63SXin Li}
28*b32fbb63SXin Li
29*b32fbb63SXin Liif [[ -z $GIT_REPO_URL ]]; then
30*b32fbb63SXin Li    readme
31*b32fbb63SXin Li    GIT_REPO_URL="https://android.googlesource.com"
32*b32fbb63SXin Lifi
33*b32fbb63SXin Liecho "GIT_REPO_URL=$GIT_REPO_URL"
34*b32fbb63SXin Li
35*b32fbb63SXin Liif [[ -z $PROJECT ]]; then
36*b32fbb63SXin Li    PROJECT="platform/tools/aadevtools"
37*b32fbb63SXin Lifi
38*b32fbb63SXin Liecho "PROJECT=$PROJECT"
39*b32fbb63SXin Li
40*b32fbb63SXin Li# e.g. taking "aadevtools" from "platform/tools/aadevtools"
41*b32fbb63SXin LiPROJECT_DIR=${PROJECT##*/}
42*b32fbb63SXin Li
43*b32fbb63SXin LiTODAY=$(date +"%y%m%d")
44*b32fbb63SXin Liif [[ -z $WORK_DIR ]]; then
45*b32fbb63SXin Li    export WORK_DIR="$PWD/$TODAY/$BRANCH"
46*b32fbb63SXin Lifi
47*b32fbb63SXin Liecho "WORK_DIR=$WORK_DIR"
48*b32fbb63SXin Li
49*b32fbb63SXin Limkdir -p $WORK_DIR
50*b32fbb63SXin Licd $WORK_DIR
51*b32fbb63SXin Li
52*b32fbb63SXin LiSECONDS=0
53*b32fbb63SXin Liecho "Cloning $PROJECT"
54*b32fbb63SXin Li
55*b32fbb63SXin Liif [[ -z $BRANCH ]]; then
56*b32fbb63SXin Li    git clone "$GIT_REPO_URL/$PROJECT"
57*b32fbb63SXin Lielse
58*b32fbb63SXin Li    echo echo "BRANCH=$BRANCH"
59*b32fbb63SXin Li    git clone -b $BRANCH "$GIT_REPO_URL/$PROJECT"
60*b32fbb63SXin Lifi
61*b32fbb63SXin Li
62*b32fbb63SXin Liecho "Setup gerrit hooks"
63*b32fbb63SXin Licd "$WORK_DIR/$PROJECT_DIR"
64*b32fbb63SXin Lif=`git rev-parse --git-dir`/hooks/commit-msg ; mkdir -p $(dirname $f) ; curl -Lo $f https://gerrit-review.googlesource.com/tools/hooks/commit-msg ; chmod +x $f
65*b32fbb63SXin Li
66*b32fbb63SXin Licd $WORK_DIR
67*b32fbb63SXin Lils -l
68*b32fbb63SXin Li
69*b32fbb63SXin Liecho "
70*b32fbb63SXin LiCloned $PROJECT projects took $SECONDS sec.
71*b32fbb63SXin Li
72*b32fbb63SXin LiDo your magic and then get the change pushed for review, e.g.:
73*b32fbb63SXin Ligit add .
74*b32fbb63SXin Ligit commit
75*b32fbb63SXin Ligit push origin HEAD:refs/for/'BRANCH'
76*b32fbb63SXin Li"
77