From 6aa8430cad0dc9dc4fa003367d5b9d1d52b70808 Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Wed, 27 Oct 2021 01:20:33 -0500 Subject: [PATCH] [buildcore] Add type annotations to pybb --- scripts/pybb.py | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/scripts/pybb.py b/scripts/pybb.py index 4c91764..170ab45 100755 --- a/scripts/pybb.py +++ b/scripts/pybb.py @@ -17,25 +17,27 @@ import subprocess import sys -def cat(path): - try: - with open(path) as f: - data = f.read() - print(data) - return 0 - except FileNotFoundError: - sys.stderr.write('cat: {}: no such file or directory\n'.format(path)) - return 1 +def cat(paths: str) -> int: + for path in paths: + try: + with open(path) as f: + data = f.read() + sys.stdout.write(data) + except FileNotFoundError: + sys.stderr.write('cat: {}: no such file or directory\n'.format(path)) + return 1 + sys.stdout.write('\n') + return 0 -def mkdir(path): +def mkdir(path: str) -> int: if not os.path.exists(path) and os.path.isdir(path): os.mkdir(path) return 0 # this exists because Windows is utterly incapable of providing a proper rm -rf -def rm(path): +def rm(path: str) -> int: if (os.path.exists(path) or os.path.islink(path)) and not os.path.isdir(path): os.remove(path) elif os.path.isdir(path): @@ -43,7 +45,7 @@ def rm(path): return 0 -def ctest_all(): +def ctest_all() -> int: base_path = sys.argv[2] if not os.path.isdir(base_path): # no generated projects @@ -58,7 +60,7 @@ def ctest_all(): return 0 -def cmake_build(base_path, target): +def cmake_build(base_path: str, target: str) -> int: if not os.path.isdir(base_path): # nothing to build return 0 @@ -73,20 +75,19 @@ def cmake_build(base_path, target): def main(): + err = 0 if sys.argv[1] == 'mkdir': - mkdir(sys.argv[2]) + err = mkdir(sys.argv[2]) elif sys.argv[1] == 'rm': for i in range(2, len(sys.argv)): rm(sys.argv[i]) elif sys.argv[1] == 'ctest-all': err = ctest_all() - sys.exit(err) elif sys.argv[1] == 'cmake-build': err = cmake_build(sys.argv[2], sys.argv[3] if len(sys.argv) > 3 else None) - sys.exit(err) elif sys.argv[1] == 'cat': - err = cat(sys.argv[2]) - sys.exit(err) + err = cat(sys.argv[2:]) + sys.exit(err) if __name__ == '__main__':