Zack Williams | 82ac505 | 2017-05-03 09:19:46 -0700 | [diff] [blame^] | 1 | #!/usr/bin/env bash |
| 2 | # repo_bootstrap.sh |
| 3 | |
| 4 | # Use master as default version |
| 5 | REPO_BRANCH=${REPO_BRANCH:-'master'} |
| 6 | ONOS_REPO_DIR=${ONOS_REPO_DIR:-'~/onos_repo'} |
| 7 | |
| 8 | function install_repo_tool() { |
| 9 | if [ ! -x "/usr/local/bin/repo" ] |
| 10 | then |
| 11 | echo "Installing repo..." |
| 12 | REPO_SHA256SUM="e147f0392686c40cfd7d5e6f332c6ee74c4eab4d24e2694b3b0a0c037bf51dc5" # not versioned... |
| 13 | curl -o /tmp/repo https://storage.googleapis.com/git-repo-downloads/repo |
| 14 | echo "$REPO_SHA256SUM /tmp/repo" | sha256sum -c - |
| 15 | sudo mv /tmp/repo /usr/local/bin/repo |
| 16 | sudo chmod a+x /usr/local/bin/repo |
| 17 | fi |
| 18 | } |
| 19 | |
| 20 | function checkout_onos_with_repo() { |
| 21 | |
| 22 | if [ ! -d "$ONOS_REPO_DIR" ] |
| 23 | then |
| 24 | echo "Checking out ONOS using repo..." |
| 25 | |
| 26 | mkdir $ONOS_REPO_DIR && cd $ONOS_REPO_DIR |
| 27 | repo init -u https://gerrit.onosproject.org/manifest -b $REPO_BRANCH -g onos |
| 28 | repo sync |
| 29 | |
| 30 | # check out gerrit branches using repo |
| 31 | for gerrit_branch in ${GERRIT_BRANCHES[@]}; do |
| 32 | echo "Checking out opencord gerrit branch: $gerrit_branch" |
| 33 | repo download ${gerrit_branch/:/ } |
| 34 | done |
| 35 | fi |
| 36 | } |
| 37 | |
| 38 | # Parse options |
| 39 | GERRIT_BRANCHES= |
| 40 | |
| 41 | while getopts "b:chsv" opt; do |
| 42 | case ${opt} in |
| 43 | b ) GERRIT_BRANCHES+=("$OPTARG") |
| 44 | ;; |
| 45 | h ) echo "Usage:" |
| 46 | echo " $0 download ONOS using repo [default]" |
| 47 | echo " $0 -b <project:changeset/revision> checkout changesets from gerrit. Can" |
| 48 | echo " be used multiple times." |
| 49 | echo " $0 -h display this help message" |
| 50 | \? ) echo "Invalid option: -$OPTARG" |
| 51 | exit 1 |
| 52 | ;; |
| 53 | esac |
| 54 | done |
| 55 | |
| 56 | install_repo_tool() |
| 57 | checkout_onos_with_repo() |
| 58 | |