summaryrefslogtreecommitdiffstats
path: root/build/scripts/decimal_md5.py
diff options
context:
space:
mode:
authoralexv-smirnov <[email protected]>2023-03-28 22:25:04 +0300
committeralexv-smirnov <[email protected]>2023-03-28 22:25:04 +0300
commitb8a17f9b1c166d2e9a26b99348a4c29d972caf55 (patch)
tree1a2d881f1a9452b9c6103dbf69d73da7624e98e5 /build/scripts/decimal_md5.py
parent25659221f18577ea38430a8ec3349836f5626b6a (diff)
Revert ymake build from ydb oss export
Diffstat (limited to 'build/scripts/decimal_md5.py')
-rw-r--r--build/scripts/decimal_md5.py79
1 files changed, 0 insertions, 79 deletions
diff --git a/build/scripts/decimal_md5.py b/build/scripts/decimal_md5.py
deleted file mode 100644
index e70ca80a09f..00000000000
--- a/build/scripts/decimal_md5.py
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-import hashlib
-import struct
-import sys
-import os
-import argparse
-
-
-def print_code(checksum, func_name):
- if len(func_name) == 0: # safe fallback for old ya.make files
- func_name = "DecimalMD5"
- print 'const char* ' + func_name + '() {return "' + checksum + '";}'
-
-
-def ensure_paths_exist(paths):
- bad_paths = sorted(
- path for path in paths
- if not os.path.exists(path)
- )
- if bad_paths:
- print >> sys.stderr, "decimal_md5 inputs do not exist:"
- for path in bad_paths:
- print >> sys.stderr, path
- sys.exit(1)
-
-
-def _update_digest_with_file_contents(digest, path, block_size=65535):
- with open(path) as f:
- while True:
- block = f.read(block_size)
- if not block:
- break
- digest.update(block)
-
-
-def main():
- parser = argparse.ArgumentParser()
- parser.add_argument("--fixed-output", help="don not calculate md5, use this value instead")
- parser.add_argument("--lower-bits", help="use specified count of lower bits", type=int, default=32)
- parser.add_argument("--source-root", help="arcadia source root")
- parser.add_argument("--func-name", help="custom function name to be defined", default="DecimalMD5")
- parser.add_argument("targets", nargs='*', default=['.'])
-
- args = parser.parse_args()
-
- abs_paths = [
- os.path.join(args.source_root, target)
- for target in args.targets
- ]
- ensure_paths_exist(abs_paths)
-
- if args.fixed_output:
- try:
- bitmask = (1 << args.lower_bits) - 1
- fmt = '{:0%dd}' % len(str(bitmask))
- checksum = fmt.format(int(args.fixed_output) & bitmask)
- except ValueError:
- raise ValueError("decimal_md5: bad value passed via --fixed-output: %s" % args.fixed_output)
- print_code(str(checksum), func_name=args.func_name)
- return
-
- md5 = hashlib.md5()
- for path in abs_paths:
- _update_digest_with_file_contents(md5, path)
-
- md5_parts = struct.unpack('IIII', md5.digest())
- md5_int = sum(part << (32 * n) for n, part in enumerate(md5_parts))
- bitmask = (1 << args.lower_bits) - 1
- fmt = '{:0%dd}' % len(str(bitmask))
-
- checksum_str = fmt.format(md5_int & bitmask)
- print_code(checksum_str, func_name=args.func_name)
-
-
-if __name__ == "__main__":
- main()
-