blob: 7ab3458d4c4ad1fa557e1a3a061be862ef36ecbd [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_
maxwen0b8f56b2023-10-07 15:32:48 +02007BRANCH=android-14.0
8SOURCE=android-14.0.0_r<INSERT_CORRECT_TAG>
maxwen95841aa2016-03-08 23:43:18 +01009USERNAME=<INSERT USER>
Vachounet48426812020-10-23 18:26:07 +020010TOKEN=<INSERT TOKEN>
pulser73f43592013-09-13 00:09:35 +020011MANIFEST=android/default.xml
Marko Man16f03262017-12-12 13:02:56 +010012REMOVE=android/remove.xml
13FORKED=android/omni-aosp.xml
XpLoDWilD0cb714a2014-01-05 15:37:48 +010014GITHUB_ORG=omnirom
maxwen95841aa2016-03-08 23:43:18 +010015GERRIT_REMOTE=ssh://$USERNAME@gerrit.omnirom.org:29418
XpLoDWilD0cb714a2014-01-05 15:37:48 +010016REMOTE_MANIFEST=omnirom
pulser73f43592013-09-13 00:09:35 +020017
18# Script
19if [ $# -lt 1 ]; then
XpLoDWilD0cb714a2014-01-05 15:37:48 +010020 echo Usage: ./fork_aosp.sh path
21 echo Example: ./fork_aosp.sh frameworks/base
pulser73f43592013-09-13 00:09:35 +020022 exit 1
23fi
24
25REPO_NAME=$PREFIX$(echo ${1%/} | sed -e "s/\//_/g")
26
27# Check that folder is a git repo
28pushd $1
29if [ ! -d .git ]; then
30 echo "$1 doesn't appear to be a git repository"
31 popd
32 exit 1
33fi
34popd
35
XpLoDWilD0cb714a2014-01-05 15:37:48 +010036# Create the repo at github
37echo "Creating $REPO_NAME on GitHub..."
Vachounet48426812020-10-23 18:26:07 +020038curl -H 'Authorization: token '$TOKEN'' --data "{\"name\":\"$REPO_NAME\"}" https://api.github.com/orgs/$GITHUB_ORG/repos
pulser73f43592013-09-13 00:09:35 +020039
40# 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 +020041ssh -p 29418 $USERNAME@gerrit.omnirom.org gerrit create-project $REPO_NAME
pulser73f43592013-09-13 00:09:35 +020042
43echo "Creating branch $BRANCH..."
XpLoDWilD0cb714a2014-01-05 15:37:48 +010044pushd $1
45git remote rm gerrit
pulser73f43592013-09-13 00:09:35 +020046git remote add gerrit $GERRIT_REMOTE/$REPO_NAME
47git checkout $SOURCE
48git branch $BRANCH
49git push gerrit $BRANCH
50
51echo "Updating manifest..."
XpLoDWilD0cb714a2014-01-05 15:37:48 +010052popd
Marko Man16f03262017-12-12 13:02:56 +010053REMOVE_OLD="\ \<remove-project name=platform/${1} />"
54INSERT_NEW="\ \<project path=\"${1%/}\" name=\"$REPO_NAME\" remote=\"$REMOTE_MANIFEST\" revision=\"$BRANCH\" />"
55sed -i "$ i$REMOVE_OLD" $REMOVE
56sed -i "$ i$INSERT_NEW" $FORKED
pulser73f43592013-09-13 00:09:35 +020057
58echo "Pushing manifest"
XpLoDWilD0cb714a2014-01-05 15:37:48 +010059pushd android
pulser73f43592013-09-13 00:09:35 +020060git checkout $BRANCH
61git commit -a -m "Replace $1 path to new repository $REPO_NAME"
62git push $GERRIT_REMOTE/android HEAD:refs/for/$BRANCH
XpLoDWilD0cb714a2014-01-05 15:37:48 +010063popd
pulser73f43592013-09-13 00:09:35 +020064
65echo "Now remember to approve the change on gerrit before going further!"
66read -p "Press [Enter] key once you've approved the change on gerrit"
67
68echo "Remember to repo sync before use!"