From a56e2bdf9c66537419a0890d94ea14007b17b104 Mon Sep 17 00:00:00 2001 From: Michal Sojka Date: Sun, 15 Sep 2024 01:02:10 +0200 Subject: [PATCH] Generate correct paths when setting --output-dir --- ros2nix/ros2nix.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ros2nix/ros2nix.py b/ros2nix/ros2nix.py index 1cf5a9a..504dd0f 100755 --- a/ros2nix/ros2nix.py +++ b/ros2nix/ros2nix.py @@ -63,14 +63,15 @@ def get_output_file_name(source: str, pkg: Package, args): return os.path.join(dir, fn) def generate_overlay(expressions: dict[str, str], args): - with open("overlay.nix", "w") as f: + with open(f'{args.output_dir or "."}/overlay.nix', "w") as f: print("self: super:\n{", file=f) for pkg in sorted(expressions): - print(f" {pkg} = super.callPackage {expressions[pkg]} {{}};", file=f) + expr = expressions[pkg] if args.output_dir is None else f"./{os.path.basename(expressions[pkg])}" + print(f" {pkg} = super.callPackage {expr} {{}};", file=f) print("}", file=f) def generate_default(args): - with open("default.nix", "w") as f: + with open(f'{args.output_dir or "."}/default.nix', "w") as f: f.write('''{ nix-ros-overlay ? builtins.fetchTarball "https://github.com/lopsided98/nix-ros-overlay/archive/master.tar.gz", }: @@ -215,7 +216,7 @@ def ros2nix(args): if args.output_dir is None: kwargs["src_expr"] = "./." else: - kwargs["src_expr"] = f"./{os.path.dirname(source)}" + kwargs["src_expr"] = f"./{os.path.relpath(os.path.dirname(source), args.output_dir)}" if args.source_root: kwargs["source_root"] = args.source_root.replace('{package_name}', pkg.name)