Skip to content

Linux support: test and validate on Linux distributions #3

@codingstark-dev

Description

@codingstark-dev

Summary

BunKill is currently only tested on macOS. Linux has not been validated but is likely closer to working than Windows since many commands (du, rm, path separators) are shared. This issue tracks testing, validation, and any fixes needed for Linux.

Areas to Test

1. Terminal UI

  • Raw mode (setRawMode) behavior across different terminal emulators (gnome-terminal, konsole, alacritty, kitty, tmux, screen)
  • ANSI escape codes for colors, cursor movement, and screen clearing
  • Keyboard input handling (arrow keys, Page Up/Down, Home/End send different escape sequences on some terminals)

2. File System Operations

  • getDirectorySize() at src/scanner.ts:157 uses du -sk — verify output format matches expectations across distros
  • deleteModules() at src/scanner.ts:426 uses rm -rf — should work but needs validation
  • Permission error handling — Linux permission codes may differ from macOS

3. Path Handling

  • Path separators should be fine (/ is standard on Linux)
  • Home directory resolution (os.homedir())
  • Hidden directory detection (. prefix)

4. Opening Directories

  • src/cli.ts:743 uses xdg-open — verify this works across desktop environments (GNOME, KDE, etc.)

Testing Needed

  • Test on Ubuntu 22.04+/24.04 (most common)
  • Test on Fedora
  • Test on Arch Linux
  • Test inside tmux and screen
  • Test with different terminal emulators
  • Run bunkill --dry-run and verify scan results
  • Run bunkill --delete-all on a test directory
  • Test interactive mode (all keyboard shortcuts)
  • Test --full-scan mode
  • Test --exclude-hidden flag
  • Verify du -sk output parsing works across locales

Proposed Improvements

  1. Add fallback for du -sk if output format differs (some locales may affect number formatting)
  2. Consider adding LANG=C env when spawning du to ensure consistent output
  3. Add CI testing on Ubuntu (GitHub Actions ubuntu-latest)
  4. Document minimum Linux requirements in README

Acceptance Criteria

  • All features work on Ubuntu 22.04+
  • Interactive UI works in common terminal emulators
  • CI pipeline includes Linux testing
  • README updated with Linux installation and usage instructions
  • Known limitations documented (if any)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions