Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Side by Side Diff: wtf

Issue 1602020: Adding weekly tool to help with weekly snippets (Closed)
Patch Set: . Created 10 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « weekly ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2010 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Display active git branches and code changes in a chromiumos workspace.""" 6 """Display active git branches and code changes in a chromiumos workspace."""
7 7
8 import gclient_utils
8 import os 9 import os
9 import re 10 import re
10 import subprocess 11 import subprocess
11 import sys 12 import sys
12 13
13 14
14 def show_dir(full_name, relative_name, color): 15 def show_dir(full_name, relative_name, color):
15 """Display active work in a single git repo.""" 16 """Display active work in a single git repo."""
16 17
17 def show_name(): 18 def show_name():
(...skipping 26 matching lines...) Expand all
44 stdout=subprocess.PIPE).communicate()[0].rstrip() 45 stdout=subprocess.PIPE).communicate()[0].rstrip()
45 46
46 if len(status.splitlines()) > 2: 47 if len(status.splitlines()) > 2:
47 if lines_printed == 0: 48 if lines_printed == 0:
48 show_name() 49 show_name()
49 if lines_printed == 1: 50 if lines_printed == 1:
50 print '---------------' 51 print '---------------'
51 print status 52 print status
52 53
53 54
54 def find_file(filename):
55 """Search upwards from the current directory to find a file."""
56 path = filename
57 while os.getcwd().split('/'):
58 if os.path.isfile(path):
59 return path
60 path = os.path.join('../', path)
61
62
63 def main(): 55 def main():
64 """Take no arguments.""" 56 """Take no arguments."""
65 57
66 color = False 58 color = False
67 59
68 if os.isatty(1): 60 if os.isatty(1):
69 color = True 61 color = True
70 62
71 base = os.path.basename(os.getcwd()) 63 base = os.path.basename(os.getcwd())
72 config_file = '.gclient_entries' 64 root, entries = gclient_utils.GetGClientRootAndEntries()
73 config_path = find_file(config_file)
74 65
75 if not config_path: 66 # which entries map to a git repos?
76 print "Can't find", config_file 67 raw = [k for k, v in entries.items() if not re.search('svn', v)]
77 sys.exit(1)
78
79 env = {}
80 execfile(config_path, env)
81
82 # which are the git repos?
83 raw = [k for k, v in env['entries'].items() if not re.search('svn', v)]
84 raw.sort() 68 raw.sort()
85 69
86 # We want to use the full path for testing, but we want to use the relative 70 # We want to use the full path for testing, but we want to use the relative
87 # path for display. 71 # path for display.
88 root = os.path.dirname(config_path)
89 fulldirs = map(lambda(p): os.path.normpath(os.path.join(root, p)), raw) 72 fulldirs = map(lambda(p): os.path.normpath(os.path.join(root, p)), raw)
90 reldirs = map(lambda(p): re.sub('^' + base, '.', p), raw) 73 reldirs = map(lambda(p): re.sub('^' + base, '.', p), raw)
91 74
92 for full_path, relative_path in zip(fulldirs, reldirs): 75 for full_path, relative_path in zip(fulldirs, reldirs):
93 show_dir(full_path, relative_path, color) 76 show_dir(full_path, relative_path, color)
94 77
95 if __name__ == '__main__': 78 if __name__ == '__main__':
96 main() 79 main()
OLDNEW
« no previous file with comments | « weekly ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698