artiq_flash: cleanup openocd handling, do not follow symlinks

Not following symlinks allows files to be added to OpenOCD via nixpkgs buildEnv.
This commit is contained in:
Sebastien Bourdeauducq 2021-07-26 17:01:24 +08:00
parent 0a29b75f8e
commit 4ee25fc2d1
1 changed files with 5 additions and 11 deletions

View File

@ -75,28 +75,22 @@ Prerequisites:
help="actions to perform, default: %(default)s")
return parser
def which_openocd():
def openocd_root():
openocd = shutil.which("openocd")
if not openocd:
raise FileNotFoundError("OpenOCD is required but was not found in PATH. Is it installed?")
return openocd
return os.path.dirname(os.path.dirname(openocd))
def scripts_path():
p = ["share", "openocd", "scripts"]
if os.name == "nt":
p.insert(0, "Library")
p = os.path.abspath(os.path.join(
os.path.dirname(os.path.realpath(which_openocd())),
"..", *p))
return p
return os.path.abspath(os.path.join(openocd_root(), *p))
def proxy_path():
p = ["share", "bscan-spi-bitstreams"]
p = os.path.abspath(os.path.join(
os.path.dirname(os.path.realpath(which_openocd())),
"..", *p))
return p
return os.path.abspath(os.path.join(openocd_root(), "share", "bscan-spi-bitstreams"))
def find_proxy_bitfile(filename):