mirror of
https://github.com/facebook/sapling.git
synced 2025-01-06 04:43:19 +03:00
71dc89f250
Summary: The chg code now always attempts to import __version__.py Previously this was not generated during buck-based builds. This updates the buck build to generate a __version__.py file now. Reviewed By: ryanmce Differential Revision: D8601650 fbshipit-source-id: 59bd0605394feeabcc41766a7e55cbdd253f07ad
49 lines
1.2 KiB
Python
Executable File
49 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# Copyright 2004-present Facebook. All Rights Reserved.
|
|
import argparse
|
|
import errno
|
|
import hashlib
|
|
import os
|
|
import struct
|
|
|
|
|
|
MAIN_VERSION = "4.4.2"
|
|
|
|
|
|
def main():
|
|
ap = argparse.ArgumentParser()
|
|
ap.add_argument("--version", required=True)
|
|
ap.add_argument("--release", required=True)
|
|
ap.add_argument("--revision", required=True)
|
|
ap.add_argument("output_path")
|
|
args = ap.parse_args()
|
|
|
|
if args.version and args.release:
|
|
sub_version = "%s_%s_%s" % (args.version, args.release, args.revision[:8])
|
|
elif args.revision:
|
|
sub_version = args.revision[:8]
|
|
else:
|
|
# Buck does not pass in any build data info in dev builds
|
|
sub_version = "dev"
|
|
|
|
version = "%s_%s" % (MAIN_VERSION, sub_version)
|
|
versionb = version.encode("ascii")
|
|
versionhash = struct.unpack(">Q", hashlib.sha1(versionb).digest()[:8])[0]
|
|
|
|
contents = (
|
|
"# auto-generated by the build\n" 'version = "%s"\n' "versionhash = %s\n"
|
|
) % (version, versionhash)
|
|
|
|
try:
|
|
output_dir = os.path.dirname(args.output_path)
|
|
os.makedirs(output_dir)
|
|
except OSError as ex:
|
|
if ex.errno != errno.EEXIST:
|
|
raise
|
|
|
|
with open(args.output_path, "w") as f:
|
|
f.write(contents)
|
|
|
|
|
|
main()
|