104c66eddSJacques Pienaar# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 204c66eddSJacques Pienaar# See https://llvm.org/LICENSE.txt for license information. 304c66eddSJacques Pienaar# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 404c66eddSJacques Pienaar 504c66eddSJacques Pienaarimport os 604c66eddSJacques Pienaarimport argparse 704c66eddSJacques Pienaar 804c66eddSJacques Pienaarfrom jupyter_client.kernelspec import KernelSpecManager 904c66eddSJacques Pienaar 1004c66eddSJacques Pienaar 1104c66eddSJacques Pienaardef install_my_kernel_spec(user=True, prefix=None): 1204c66eddSJacques Pienaar """Install the kernel spec for user in given prefix.""" 13*f9008e63STobias Hieta print("Installing mlir-opt IPython kernel spec") 1404c66eddSJacques Pienaar pkgroot = os.path.dirname(__file__) 15*f9008e63STobias Hieta KernelSpecManager().install_kernel_spec( 16*f9008e63STobias Hieta os.path.join(pkgroot, "assets"), "mlir", user=user, prefix=prefix 17*f9008e63STobias Hieta ) 1804c66eddSJacques Pienaar 1904c66eddSJacques Pienaar 2004c66eddSJacques Pienaardef _is_root(): 2104c66eddSJacques Pienaar """Returns whether the current user is root.""" 2204c66eddSJacques Pienaar try: 2304c66eddSJacques Pienaar return os.geteuid() == 0 2404c66eddSJacques Pienaar except AttributeError: 2504c66eddSJacques Pienaar # Return false wherever unknown. 2604c66eddSJacques Pienaar return False 2704c66eddSJacques Pienaar 2804c66eddSJacques Pienaar 2904c66eddSJacques Pienaardef main(argv=None): 3004c66eddSJacques Pienaar parser = argparse.ArgumentParser( 31*f9008e63STobias Hieta description="Install KernelSpec for MlirOpt Kernel" 32*f9008e63STobias Hieta ) 3304c66eddSJacques Pienaar prefix_locations = parser.add_mutually_exclusive_group() 3404c66eddSJacques Pienaar 35*f9008e63STobias Hieta prefix_locations.add_argument( 36*f9008e63STobias Hieta "--user", help="Install in user home directory", action="store_true" 37*f9008e63STobias Hieta ) 38*f9008e63STobias Hieta prefix_locations.add_argument( 39*f9008e63STobias Hieta "--prefix", help="Install directory prefix", default=None 40*f9008e63STobias Hieta ) 4104c66eddSJacques Pienaar 4204c66eddSJacques Pienaar args = parser.parse_args(argv) 4304c66eddSJacques Pienaar 4404c66eddSJacques Pienaar user = args.user or not _is_root() 4504c66eddSJacques Pienaar prefix = args.prefix 4604c66eddSJacques Pienaar 4704c66eddSJacques Pienaar install_my_kernel_spec(user=user, prefix=prefix) 4804c66eddSJacques Pienaar 4904c66eddSJacques Pienaar 50*f9008e63STobias Hietaif __name__ == "__main__": 5104c66eddSJacques Pienaar main() 52