File: get_vcs_revision.py

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (47 lines) | stat: -rwxr-xr-x 1,090 bytes parent folder | download
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
#!/usr/bin/env python
"""
Retrieve the Version Control System revision number.

This script checks the current directory, figures out
what kind of revision control system it is (currently
supports git and svn), and reports the revision number
if it can figure out what it is.  If it cannot figure
out what it is, it prints nothing to standard out.
"""

from __future__ import print_function

import os
import subprocess


def print_git_revision():
    try:
        revision = subprocess.check_output('git rev-parse HEAD', shell=True)
        print(revision.rstrip())
    except:
        # Print nothing on error.
        pass


def print_svn_revision():
    try:
        revision = subprocess.check_output('svnversion', shell=True)
        print(revision.rstrip())
    except:
        # Print nothing on error.
        pass


def main():
    """Drives the main program."""
    if os.path.exists(".git"):
        print_git_revision()
    elif os.path.exists(".svn"):
        print_svn_revision()
    else:
        # VCS not yet supported.
        pass

if __name__ == "__main__":
    main()