
TBR=niklas.enbom@webrtc.org Review URL: https://webrtc-codereview.appspot.com/915006 git-svn-id: http://webrtc.googlecode.com/svn/trunk@2963 4adac7df-926f-26a2-2b94-8c16560cd09d
62 lines
1.9 KiB
Python
Executable File
62 lines
1.9 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
# Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
|
|
#
|
|
# Use of this source code is governed by a BSD-style license
|
|
# that can be found in the LICENSE file in the root of the source
|
|
# tree. An additional intellectual property rights grant can be found
|
|
# in the file PATENTS. All contributing project authors may
|
|
# be found in the AUTHORS file in the root of the source tree.
|
|
|
|
"""Get svn revision of working copy
|
|
|
|
This script tries to get the svn revision as much as it can. It supports
|
|
both git-svn and svn. It will fail if not in a git-svn or svn repository;
|
|
in this case the script will return "n/a".
|
|
This script is a simplified version of lastchange.py which is in Chromium's
|
|
src/build/util folder.
|
|
"""
|
|
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
def popen_cmd_and_get_output(cmd, directory):
|
|
"""Return (status, output) of executing cmd in a shell."""
|
|
try:
|
|
proc = subprocess.Popen(cmd,
|
|
stdout=subprocess.PIPE,
|
|
stderr=subprocess.PIPE,
|
|
cwd=directory,
|
|
shell=(sys.platform=='win32'))
|
|
except OSError:
|
|
# command is apparently either not installed or not executable.
|
|
return None
|
|
if not proc:
|
|
return None
|
|
|
|
for line in proc.stdout:
|
|
line = line.strip()
|
|
if not line:
|
|
continue
|
|
words = line.split()
|
|
for index, word in enumerate(words):
|
|
if word == "Revision:":
|
|
return words[index+1]
|
|
# return None if cannot find keyword Revision
|
|
return None
|
|
|
|
def main():
|
|
directory = os.path.dirname(sys.argv[0]);
|
|
version = popen_cmd_and_get_output(['git', 'svn', 'info'], directory)
|
|
if version == None:
|
|
version = popen_cmd_and_get_output(['svn', 'info'], directory)
|
|
if version == None:
|
|
print "n/a"
|
|
return 0
|
|
print version
|
|
return 0
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main())
|