11134.1.1
by Steve Kowalik
Add a new script that checks the status of the local versus remote branches and tells the state of any linked MPs. |
1 |
#!/usr/bin/python
|
2 |
||
3 |
from bzrlib import branch, errors |
|
4 |
import commands |
|
5 |
from launchpadlib.launchpad import Launchpad |
|
6 |
import os |
|
7 |
import sys |
|
8 |
||
11677.3.3
by Robert Collins
More edge removal. |
9 |
launchpad = Launchpad.login_with('rocketfuel-mp-status', 'production') |
11134.1.1
by Steve Kowalik
Add a new script that checks the status of the local versus remote branches and tells the state of any linked MPs. |
10 |
trunk = commands.getoutput( |
11 |
'. ~/.rocketfuel-env.sh && echo $LP_TRUNK_NAME') |
|
12 |
projpath = commands.getoutput( |
|
13 |
'. ~/.rocketfuel-env.sh && echo $LP_PROJECT_PATH') |
|
11551.1.2
by Steve Kowalik
* Allow users to specify multiple branches to check, thanks Edwin |
14 |
if len(sys.argv) > 1: |
15 |
branches = sys.argv[1:] |
|
11551.1.3
by Steve Kowalik
Don't chdir if we specify which branches |
16 |
else: |
17 |
os.chdir(projpath) |
|
18 |
branches = os.listdir('.') |
|
11134.1.2
by Steve Kowalik
Remove a large number of egregious underscores |
19 |
lp_branches = launchpad.branches |
11134.1.1
by Steve Kowalik
Add a new script that checks the status of the local versus remote branches and tells the state of any linked MPs. |
20 |
|
21 |
for lb in branches: |
|
22 |
if lb == trunk: |
|
23 |
continue
|
|
24 |
try: |
|
13744.1.1
by Steve Kowalik
Improve freshness messages and fix one bit of lint. |
25 |
_branch = branch.Branch.open(lb) |
11134.1.1
by Steve Kowalik
Add a new script that checks the status of the local versus remote branches and tells the state of any linked MPs. |
26 |
except errors.NotBranchError: |
27 |
continue
|
|
28 |
print ' * %s' % lb |
|
11134.1.2
by Steve Kowalik
Remove a large number of egregious underscores |
29 |
rem_branch_url = _branch.get_public_branch() |
11134.1.1
by Steve Kowalik
Add a new script that checks the status of the local versus remote branches and tells the state of any linked MPs. |
30 |
try: |
11134.1.2
by Steve Kowalik
Remove a large number of egregious underscores |
31 |
rem_branch = branch.Branch.open(rem_branch_url) |
11134.1.1
by Steve Kowalik
Add a new script that checks the status of the local versus remote branches and tells the state of any linked MPs. |
32 |
except errors.NotBranchError: |
33 |
print ' - Remote branch does not exist' |
|
34 |
continue
|
|
13744.1.1
by Steve Kowalik
Improve freshness messages and fix one bit of lint. |
35 |
if _branch.revno() == rem_branch.revno(): |
36 |
print ' - Remote branch is up to date' |
|
37 |
elif _branch.revno() > rem_branch.revno(): |
|
11134.1.1
by Steve Kowalik
Add a new script that checks the status of the local versus remote branches and tells the state of any linked MPs. |
38 |
print ' - Remote branch is missing revisions' |
13744.1.1
by Steve Kowalik
Improve freshness messages and fix one bit of lint. |
39 |
elif _branch.revno() < rem_branch.revno(): |
40 |
print ' - Local branch is missing revisions' |
|
11134.1.2
by Steve Kowalik
Remove a large number of egregious underscores |
41 |
remote = lp_branches.getByUrl(url = rem_branch_url) |
42 |
mps = remote.landing_targets |
|
43 |
for mp in mps: |
|
11134.1.1
by Steve Kowalik
Add a new script that checks the status of the local versus remote branches and tells the state of any linked MPs. |
44 |
print ' - MP: %s' % mp.queue_status |
45 |