Skip to content

(exa PR) 1018: Try canonicalisation when converting File to Dir - #48

Closed
cafkafk wants to merge 1 commit into
mainfrom
pr-1018
Closed

(exa PR) 1018: Try canonicalisation when converting File to Dir#48
cafkafk wants to merge 1 commit into
mainfrom
pr-1018

Conversation

@cafkafk

@cafkafk cafkafk commented Jul 29, 2023

Copy link
Copy Markdown
Member

Without this canonicalisation, if the directory is a symbolic link to
another directory, later at `reorient_target_path` [1], File and path
argument look like:

- self: File {
    name: "."
    ext: None
    path: "/tmp/test2"
    metadata: {...}
    parent_dir: Some({
      contents: vec![]
      path: "/tmp/test2"
    })
    is_all_all: true
  }
- path: "test1"

...where /tmp/test2 is a symlink to /tmp/test1 and command being used is
`exa -laa /tmp/test2`.

So the result of `dir.join(&*path)` becomes `/tmp/test2/test1`, which
doesn't exist.

The canonicalisation also makes the behaviours of `exa -laa /tmp/test2`
and `exa -laa /tmp/test2/` consistent, where `.` is not treated as a
symlink in either case. This is a bit different from coreutils `ls`
though.

Closes #952.

[1] https://github.com/ogham/exa/blob/42659f93456d9ff7cc1096cbd84d778ede26d76e/src/fs/file.rs#L215-L217
@cafkafk cafkafk changed the title (exa PR) 1018 (exa PR) 1018: Try canonicalisation when converting File to Dir Jul 29, 2023
@sbatial sbatial mentioned this pull request Jul 30, 2023
63 tasks
@cafkafk cafkafk added this to the exa pulls done milestone Jul 31, 2023
@github-actions

Copy link
Copy Markdown

This pull request is stale because it has been open for 30 days with no activity.

@github-actions

Copy link
Copy Markdown

This pull request was closed because it has been inactive for 14 days since being marked as stale.

@github-actions github-actions Bot closed this Sep 15, 2023
@cafkafk
cafkafk deleted the pr-1018 branch October 12, 2023 07:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

No open projects
Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

2 participants