pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | # Copyright OmniROM Project |
| 3 | # Licensed under GPLv3 |
| 4 | |
| 5 | # Configuration |
XpLoDWilD | 0cb714a | 2014-01-05 15:37:48 +0100 | [diff] [blame^] | 6 | ANDROID_ROOT=~/omni |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 7 | PREFIX=android_ |
XpLoDWilD | 0cb714a | 2014-01-05 15:37:48 +0100 | [diff] [blame^] | 8 | BRANCH=android-4.4 |
| 9 | SOURCE=android-4.4.2_r1 |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 10 | MANIFEST=android/default.xml |
XpLoDWilD | 0cb714a | 2014-01-05 15:37:48 +0100 | [diff] [blame^] | 11 | GITHUB_ORG=omnirom |
| 12 | USERNAME=xplodwild |
| 13 | GERRIT_REMOTE=ssh://gerrit.omnirom.org:29418 |
| 14 | REMOTE_MANIFEST=omnirom |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 15 | |
| 16 | # Script |
| 17 | if [ $# -lt 1 ]; then |
XpLoDWilD | 0cb714a | 2014-01-05 15:37:48 +0100 | [diff] [blame^] | 18 | echo Usage: ./fork_aosp.sh path |
| 19 | echo Example: ./fork_aosp.sh frameworks/base |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 20 | exit 1 |
| 21 | fi |
| 22 | |
| 23 | REPO_NAME=$PREFIX$(echo ${1%/} | sed -e "s/\//_/g") |
| 24 | |
| 25 | # Check that folder is a git repo |
| 26 | pushd $1 |
| 27 | if [ ! -d .git ]; then |
| 28 | echo "$1 doesn't appear to be a git repository" |
| 29 | popd |
| 30 | exit 1 |
| 31 | fi |
| 32 | popd |
| 33 | |
XpLoDWilD | 0cb714a | 2014-01-05 15:37:48 +0100 | [diff] [blame^] | 34 | # Create the repo at github |
| 35 | echo "Creating $REPO_NAME on GitHub..." |
| 36 | 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] | 37 | |
| 38 | # Only works if you are a gerrit admin, will create the named project before pushing (gerrit then replicates to git) |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 39 | ssh -p 29418 gerrit.omnirom.org gerrit create-project --name $REPO_NAME |
| 40 | |
| 41 | echo "Creating branch $BRANCH..." |
XpLoDWilD | 0cb714a | 2014-01-05 15:37:48 +0100 | [diff] [blame^] | 42 | pushd $1 |
| 43 | git remote rm gerrit |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 44 | git remote add gerrit $GERRIT_REMOTE/$REPO_NAME |
| 45 | git checkout $SOURCE |
| 46 | git branch $BRANCH |
| 47 | git push gerrit $BRANCH |
| 48 | |
| 49 | echo "Updating manifest..." |
XpLoDWilD | 0cb714a | 2014-01-05 15:37:48 +0100 | [diff] [blame^] | 50 | popd |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 51 | SRC_LINE=$(cat $MANIFEST | grep ${1%/} | head -n1) |
| 52 | if [[ "$SRC_LINE" == *group="pdk"* ]]; then |
| 53 | NEW_LINE=" <project path=\"${1%/}\" name=\"$REPO_NAME\" remote=\"$REMOTE_MANIFEST\" revision=\"$BRANCH\" group=\"pdk\" />" |
| 54 | else |
| 55 | NEW_LINE=" <project path=\"${1%/}\" name=\"$REPO_NAME\" remote=\"$REMOTE_MANIFEST\" revision=\"$BRANCH\" />" |
| 56 | fi |
| 57 | |
| 58 | # Update the repo in manifest listing |
| 59 | |
| 60 | sed -i "s%$SRC_LINE%$NEW_LINE%g" $MANIFEST |
| 61 | |
| 62 | echo "Pushing manifest" |
XpLoDWilD | 0cb714a | 2014-01-05 15:37:48 +0100 | [diff] [blame^] | 63 | pushd android |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 64 | git checkout $BRANCH |
| 65 | git commit -a -m "Replace $1 path to new repository $REPO_NAME" |
| 66 | git push $GERRIT_REMOTE/android HEAD:refs/for/$BRANCH |
XpLoDWilD | 0cb714a | 2014-01-05 15:37:48 +0100 | [diff] [blame^] | 67 | popd |
pulser | 73f4359 | 2013-09-13 00:09:35 +0200 | [diff] [blame] | 68 | |
| 69 | echo "Now remember to approve the change on gerrit before going further!" |
| 70 | read -p "Press [Enter] key once you've approved the change on gerrit" |
| 71 | |
| 72 | echo "Remember to repo sync before use!" |