Marko Man | 16f0326 | 2017-12-12 13:02:56 +0100 | [diff] [blame] | 1 | #!/bin/bash |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 2 | # Copyright OmniROM Project |
| 3 | # Licensed under GPLv3 |
| 4 | |
| 5 | # Configuration |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 6 | PREFIX=android_ |
micky387 | 1a865e2 | 2020-10-01 03:31:52 +0200 | [diff] [blame^] | 7 | BRANCH=android-11 |
| 8 | SOURCE=android-11.0.0_r<INSERT_CORRECT_TAG> |
maxwen | 95841aa | 2016-03-08 23:43:18 +0100 | [diff] [blame] | 9 | USERNAME=<INSERT USER> |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 10 | MANIFEST=android/default.xml |
Marko Man | 16f0326 | 2017-12-12 13:02:56 +0100 | [diff] [blame] | 11 | REMOVE=android/remove.xml |
| 12 | FORKED=android/omni-aosp.xml |
XpLoDWilD | 0cb714a | 2014-01-05 15:37:48 +0100 | [diff] [blame] | 13 | GITHUB_ORG=omnirom |
maxwen | 95841aa | 2016-03-08 23:43:18 +0100 | [diff] [blame] | 14 | GERRIT_REMOTE=ssh://$USERNAME@gerrit.omnirom.org:29418 |
XpLoDWilD | 0cb714a | 2014-01-05 15:37:48 +0100 | [diff] [blame] | 15 | REMOTE_MANIFEST=omnirom |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 16 | |
| 17 | # Script |
| 18 | if [ $# -lt 1 ]; then |
XpLoDWilD | 0cb714a | 2014-01-05 15:37:48 +0100 | [diff] [blame] | 19 | echo Usage: ./fork_aosp.sh path |
| 20 | echo Example: ./fork_aosp.sh frameworks/base |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 21 | exit 1 |
| 22 | fi |
| 23 | |
| 24 | REPO_NAME=$PREFIX$(echo ${1%/} | sed -e "s/\//_/g") |
| 25 | |
| 26 | # Check that folder is a git repo |
| 27 | pushd $1 |
| 28 | if [ ! -d .git ]; then |
| 29 | echo "$1 doesn't appear to be a git repository" |
| 30 | popd |
| 31 | exit 1 |
| 32 | fi |
| 33 | popd |
| 34 | |
XpLoDWilD | 0cb714a | 2014-01-05 15:37:48 +0100 | [diff] [blame] | 35 | # Create the repo at github |
| 36 | echo "Creating $REPO_NAME on GitHub..." |
| 37 | curl --user $USERNAME --data "{\"name\":\"$REPO_NAME\"}" https://api.github.com/orgs/$GITHUB_ORG/repos |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 38 | |
| 39 | # Only works if you are a gerrit admin, will create the named project before pushing (gerrit then replicates to git) |
maxwen | 3327f8d | 2016-10-06 23:59:02 +0200 | [diff] [blame] | 40 | ssh -p 29418 $USERNAME@gerrit.omnirom.org gerrit create-project $REPO_NAME |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 41 | |
| 42 | echo "Creating branch $BRANCH..." |
XpLoDWilD | 0cb714a | 2014-01-05 15:37:48 +0100 | [diff] [blame] | 43 | pushd $1 |
| 44 | git remote rm gerrit |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 45 | git remote add gerrit $GERRIT_REMOTE/$REPO_NAME |
| 46 | git checkout $SOURCE |
| 47 | git branch $BRANCH |
| 48 | git push gerrit $BRANCH |
| 49 | |
| 50 | echo "Updating manifest..." |
XpLoDWilD | 0cb714a | 2014-01-05 15:37:48 +0100 | [diff] [blame] | 51 | popd |
Marko Man | 16f0326 | 2017-12-12 13:02:56 +0100 | [diff] [blame] | 52 | REMOVE_OLD="\ \<remove-project name=platform/${1} />" |
| 53 | INSERT_NEW="\ \<project path=\"${1%/}\" name=\"$REPO_NAME\" remote=\"$REMOTE_MANIFEST\" revision=\"$BRANCH\" />" |
| 54 | sed -i "$ i$REMOVE_OLD" $REMOVE |
| 55 | sed -i "$ i$INSERT_NEW" $FORKED |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 56 | |
| 57 | echo "Pushing manifest" |
XpLoDWilD | 0cb714a | 2014-01-05 15:37:48 +0100 | [diff] [blame] | 58 | pushd android |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 59 | git checkout $BRANCH |
| 60 | git commit -a -m "Replace $1 path to new repository $REPO_NAME" |
| 61 | git push $GERRIT_REMOTE/android HEAD:refs/for/$BRANCH |
XpLoDWilD | 0cb714a | 2014-01-05 15:37:48 +0100 | [diff] [blame] | 62 | popd |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 63 | |
| 64 | echo "Now remember to approve the change on gerrit before going further!" |
| 65 | read -p "Press [Enter] key once you've approved the change on gerrit" |
| 66 | |
| 67 | echo "Remember to repo sync before use!" |