forked from AdrianDC/advanced_development_shell_tools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathandroid_rom_aicp.rc
69 lines (62 loc) · 1.99 KB
/
android_rom_aicp.rc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/bash
#
# Copyright 2015-2017 Adrian DC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# === Device AICP Syncer ===
function gitcpaicp()
{
# Usage: gitcpaicp (Automated upstream to AICP device merger)
# Variables
local branch_origin=cm-14.1;
local branch_target=n7.1;
local headsha1;
# Fetch remotes
gitremoteverify aicp gitrai;
git fetch aicp ${branch_target};
git reset --hard aicp/${branch_target};
git fetch origin ${branch_origin};
# Log branches
echo '';
echo -e " \e[1;34m\e[4;34mBranch : origin/${branch_origin}\e[0m";
git log --pretty=oneline -n 16 origin/${branch_origin};
echo '';
echo -e " \e[1;34m\e[4;34mBranch : aicp/${branch_target}\e[0m";
git log --pretty=oneline -n 16 aicp/${branch_target};
echo '';
# Process cherry-picks request
echo -en ' \e[1;34m\e[4;34mNumber of commits :\e[0m ';
read -r cnt;
git cherry-pick FETCH_HEAD~"${cnt}"..FETCH_HEAD;
# Diff branches
echo '';
echo -en " \e[1;34m\e[4;34mPress Enter to diff with origin/${branch_origin} :\e[0m ";
read -r;
git diff HEAD origin/${branch_origin} \
| filterdiff -p1 -x aicp.dependencies -x system.prop \
| colordiff
# Upload changes
echo '';
headsha1=$(git log --max-count=1 --format=format:%H -- .);
for i in $(seq $((cnt - 1)) -1 0); do
echo -e " \e[1;34m\e[4;34m===[ ${headsha1}~${i} ]===\e[0m";
echo '';
git reset --hard "${headsha1}~${i}";
git show --stat HEAD;
gitstat aicp "${branch_target}";
gitpraicp;
gitpgaicp;
echo '';
done;
}