blob: fc06f2b4c86abd65e1c55ef16968f1ba8eab3468 [file] [log] [blame]
Marko Man16f03262017-12-12 13:02:56 +01001#!/bin/bash
pulser73f43592013-09-13 00:09:35 +02002# Copyright OmniROM Project
3# Licensed under GPLv3
4
5# Configuration
pulser73f43592013-09-13 00:09:35 +02006PREFIX=android_
Marko Man16f03262017-12-12 13:02:56 +01007BRANCH=android-8.1
8SOURCE=android-8.1.0_r<INSERT_CORRECT_TAG>
maxwen95841aa2016-03-08 23:43:18 +01009USERNAME=<INSERT USER>
pulser73f43592013-09-13 00:09:35 +020010MANIFEST=android/default.xml
Marko Man16f03262017-12-12 13:02:56 +010011REMOVE=android/remove.xml
12FORKED=android/omni-aosp.xml
XpLoDWilD0cb714a2014-01-05 15:37:48 +010013GITHUB_ORG=omnirom
maxwen95841aa2016-03-08 23:43:18 +010014GERRIT_REMOTE=ssh://$USERNAME@gerrit.omnirom.org:29418
XpLoDWilD0cb714a2014-01-05 15:37:48 +010015REMOTE_MANIFEST=omnirom
pulser73f43592013-09-13 00:09:35 +020016
17# Script
18if [ $# -lt 1 ]; then
XpLoDWilD0cb714a2014-01-05 15:37:48 +010019 echo Usage: ./fork_aosp.sh path
20 echo Example: ./fork_aosp.sh frameworks/base
pulser73f43592013-09-13 00:09:35 +020021 exit 1
22fi
23
24REPO_NAME=$PREFIX$(echo ${1%/} | sed -e "s/\//_/g")
25
26# Check that folder is a git repo
27pushd $1
28if [ ! -d .git ]; then
29 echo "$1 doesn't appear to be a git repository"
30 popd
31 exit 1
32fi
33popd
34
XpLoDWilD0cb714a2014-01-05 15:37:48 +010035# Create the repo at github
36echo "Creating $REPO_NAME on GitHub..."
37curl --user $USERNAME --data "{\"name\":\"$REPO_NAME\"}" https://api.github.com/orgs/$GITHUB_ORG/repos
pulser73f43592013-09-13 00:09:35 +020038
39# Only works if you are a gerrit admin, will create the named project before pushing (gerrit then replicates to git)
maxwen3327f8d2016-10-06 23:59:02 +020040ssh -p 29418 $USERNAME@gerrit.omnirom.org gerrit create-project $REPO_NAME
pulser73f43592013-09-13 00:09:35 +020041
42echo "Creating branch $BRANCH..."
XpLoDWilD0cb714a2014-01-05 15:37:48 +010043pushd $1
44git remote rm gerrit
pulser73f43592013-09-13 00:09:35 +020045git remote add gerrit $GERRIT_REMOTE/$REPO_NAME
46git checkout $SOURCE
47git branch $BRANCH
48git push gerrit $BRANCH
49
50echo "Updating manifest..."
XpLoDWilD0cb714a2014-01-05 15:37:48 +010051popd
Marko Man16f03262017-12-12 13:02:56 +010052REMOVE_OLD="\ \<remove-project name=platform/${1} />"
53INSERT_NEW="\ \<project path=\"${1%/}\" name=\"$REPO_NAME\" remote=\"$REMOTE_MANIFEST\" revision=\"$BRANCH\" />"
54sed -i "$ i$REMOVE_OLD" $REMOVE
55sed -i "$ i$INSERT_NEW" $FORKED
pulser73f43592013-09-13 00:09:35 +020056
57echo "Pushing manifest"
XpLoDWilD0cb714a2014-01-05 15:37:48 +010058pushd android
pulser73f43592013-09-13 00:09:35 +020059git checkout $BRANCH
60git commit -a -m "Replace $1 path to new repository $REPO_NAME"
61git push $GERRIT_REMOTE/android HEAD:refs/for/$BRANCH
XpLoDWilD0cb714a2014-01-05 15:37:48 +010062popd
pulser73f43592013-09-13 00:09:35 +020063
64echo "Now remember to approve the change on gerrit before going further!"
65read -p "Press [Enter] key once you've approved the change on gerrit"
66
67echo "Remember to repo sync before use!"