Skip to content

Releases: queelius/dagshell

v0.2.1 - Terminal Consolidation & CLI Mode

02 Jan 02:42

Choose a tag to compare

What's New

Terminal Consolidation

  • Merged enhanced_terminal.py into terminal.py: Simpler codebase, single terminal implementation
  • All features now in one place: readline, tab completion, history expansion, aliases

CLI Mode

  • One-shot commands: dagshell ls /, dagshell pwd
  • Command mode: dagshell -c "mkdir /a && touch /a/b"
  • Filesystem persistence:
    • --fs FILE - Load filesystem from JSON
    • --save - Save changes back to source
    • -o FILE - Save to specific file
    • --json - Output filesystem as JSON for pipelines
  • Environment variable: DAGSHELL_FS for default filesystem

Testing Improvements

  • 213 new tests: 627 → 836 total
  • Coverage improved: 77% → 87%
  • terminal.py coverage: 55% → 89%
  • Renamed test files for clarity

Dependencies

  • Added pyreadline3 as Windows-only dependency (readline is built-in on Linux/macOS)

Usage Examples

# Interactive mode
dagshell

# One-shot commands
dagshell ls -la /home
dagshell pwd

# With persistence
dagshell --fs project.json ls /
dagshell --fs project.json --save mkdir /new
dagshell -o output.json -c "mkdir /test"

# Environment variable
export DAGSHELL_FS=project.json
dagshell cat /data/file.txt

Full Changelog

v0.2.0...v0.2.1

v0.2.0 - Symlinks, Permissions, and POSIX Utilities

02 Dec 18:06

Choose a tag to compare

What's New

Symbolic Links

  • ln command for creating hard and symbolic links
  • readlink command to display symlink targets
  • Path resolution follows symlinks with loop detection

Permissions & Ownership

  • chmod with octal (755) and symbolic (u+x, go-w) modes
  • chown for changing file ownership
  • stat for detailed file metadata

User Commands

  • whoami - display current user
  • id - display user and group IDs

Text Processing

  • cut - extract fields with delimiter support
  • tr - translate or delete characters
  • diff - compare files (normal and unified formats)

Path Utilities

  • basename - strip directory and suffix from paths
  • dirname - extract directory portion
  • xargs - build commands from input

Disk Usage

  • du - estimate file space usage with human-readable option

Other Improvements

  • Directory move support (mv for directories)
  • pushd/popd/dirs for directory stack navigation
  • Command history tracking
  • Improved test coverage: 69% → 77% (616 tests)

Installation

pip install dagshell
# or from source
pip install -e .

Full Changelog

v0.1.0...v0.2.0