Skip to content

feat(builtins): add readlink command#579

Merged
chaliy merged 2 commits intomainfrom
claude/process-issues-systematically-AEJJh
Mar 14, 2026
Merged

feat(builtins): add readlink command#579
chaliy merged 2 commits intomainfrom
claude/process-issues-systematically-AEJJh

Conversation

@chaliy
Copy link
Copy Markdown
Contributor

@chaliy chaliy commented Mar 14, 2026

Summary

  • Add readlink builtin with -f, -m, -e canonicalization modes and raw symlink target reading
  • Register in interpreter alongside basename, dirname, realpath
  • 10 unit tests covering symlinks, canonicalization, missing paths, and error cases

Test plan

  • Unit tests for all modes: raw, -f, -m, -e
  • Error cases: missing operand, invalid option, non-symlink, nonexistent path
  • cargo clippy --all-targets --all-features -- -D warnings passes
  • Full test suite passes (1611+ tests)

Closes #537

chaliy added 2 commits March 14, 2026 04:30
Implements readlink with support for:
- Raw mode (no flags): read symlink target from VFS
- -f: canonicalize path, all but last component must exist
- -m: canonicalize without requiring existence
- -e: canonicalize, all components must exist
- Combined flags (e.g. -fn)

Includes 10 unit tests covering positive and negative paths.

Closes #537
@chaliy chaliy merged commit 3a10575 into main Mar 14, 2026
23 checks passed
@chaliy chaliy deleted the claude/process-issues-systematically-AEJJh branch March 14, 2026 04:47
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.

feat(builtins): add readlink command

1 participant