diff --git a/crate2nix/src/resolve.rs b/crate2nix/src/resolve.rs index 4153c83e..95a0927d 100644 --- a/crate2nix/src/resolve.rs +++ b/crate2nix/src/resolve.rs @@ -472,7 +472,7 @@ impl ResolvedSource { ResolvedSource::git_or_local_directory(config, package, &package_path, source) } None => Ok(ResolvedSource::LocalDirectory(LocalDirectorySource { - path: ResolvedSource::relative_directory(config, package_path)?, + path: PathBuf::from("/").join(ResolvedSource::relative_directory(config, package_path)?), })), } } diff --git a/crate2nix/templates/Cargo.nix.tera b/crate2nix/templates/Cargo.nix.tera index 8637ef07..50045212 100644 --- a/crate2nix/templates/Cargo.nix.tera +++ b/crate2nix/templates/Cargo.nix.tera @@ -28,6 +28,7 @@ ? if builtins.pathExists ./crate-config.nix then pkgs.callPackage ./crate-config.nix {} else {} +, localCratesSrc ? src: ./. + src }: rec { @@ -153,7 +154,7 @@ rec { {%- elif crate.source.Nix.file.package %} src = pkgs.callPackage {{crate.source.Nix.file.package | safe}} {}; {%- elif crate.source.LocalDirectory.path %} - src = lib.cleanSourceWith { filter = sourceFilter; src = {{crate.source.LocalDirectory.path | safe}}; }; + src = lib.cleanSourceWith { filter = sourceFilter; src = localCratesSrc "{{crate.source.LocalDirectory.path | safe}}"; }; {%- elif crate.source.Git %} workspace_member = null; src = pkgs.fetchgit {