Skip to content

symlink: rename parameters and fix error messages to match std#83

Merged
andrewhickman merged 1 commit intoandrewhickman:mainfrom
9999years:wiggles/tnpl
Dec 15, 2025
Merged

symlink: rename parameters and fix error messages to match std#83
andrewhickman merged 1 commit intoandrewhickman:mainfrom
9999years:wiggles/tnpl

Conversation

@9999years
Copy link
Copy Markdown
Contributor

Previously, upstream named the parameters to fn symlink(src: P, dest: Q). This is confusing because dest is the path of the link that's created, not the destination the link points to.

In fact, it's so confusing that all the error messages from this crate listed the paths incorrectly: if
fs_err::os::unix::fs::symlink("link-destination", "link-source") failed, the error message would say:

failed to symlink file from link-destination to link-source

Now, in both std and tokio, these functions are named like fn symlink(original: P, link: Q). Let's update our wrappers to match the new convention.

Previously, upstream named the parameters to `fn symlink(src: P, dest: Q)`.
This is confusing because `dest` is the path of the link that's
_created_, not the _destination_ the link points to.

In fact, it's so confusing that all the error messages from this crate
listed the paths incorrectly: if
`fs_err::os::unix::fs::symlink("link-destination", "link-source")`
failed, the error message would say:

    failed to symlink file from link-destination to link-source

Now, in both `std` and `tokio`, these functions are named like `fn
symlink(original: P, link: Q)`. Let's update our wrappers to match the
new convention.
9999years added a commit to 9999years/npingler that referenced this pull request Dec 11, 2025
I had referenced the upstream Lix code that ran this logic, but made two
mistakes:

1. I was checking if the `profile` symlink existed, rather than the
   `profile_link` symlink.
2. I was creating the symlink in the wrong direction, partially due to
   confusing parameter names in `fs_err`.

   See: andrewhickman/fs-err#83

See: https://git.lix.systems/lix-project/lix/src/commit/fd38f625e6897c0597ebb2635bfb39f7cff45225/lix/libstore/profiles.cc#L338-L340
Copy link
Copy Markdown
Owner

@andrewhickman andrewhickman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@andrewhickman andrewhickman merged commit c7c65a1 into andrewhickman:main Dec 15, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants