SoptikHa2 / desed

Debugger for Sed: demystify and debug your sed scripts, from comfort of your terminal.
https://soptik.tech/articles/building-desed-the-sed-debugger.html
GNU General Public License v3.0
1.14k stars 24 forks source link
rust sed tui-rs unix

Desed

Demystify and debug your sed scripts, from comfort of your terminal.

desed usage example

Desed is a command line tool with beautiful TUI that provides users with comfortable interface and practical debugger, used to step through complex sed scripts.

Some of the notable features include:

Install

Alpine Linux

aports/testing/desed

Arch Linux

Via AUR: desed-git or desed as stable version.

DragonFly BSD

pkg install desed

Fedora

dnf install desed

FreeBSD

pkg install desed

Void Linux

xbps-install -S desed

Source

git clone https://github.com/soptikha2/desed
cd desed
cargo install --path .
cp "desed.1" "$(manpath | cut -d':' -f1)/man1"

Cargo

cargo install desed

Precompiled binaries

See releases.

Dependencies:

Development: rust, cargo (>= 1.38.0)

Runtime: sed (GNU version, >= 4.6) (desed works on BSD if you installed gsed)

Controls

FAQ

How does it work?

GNU sed actually provides pretty useful debugging interface, try it yourself with --debug flag. However the interface is not interactive and I wanted something closer to traditional debugger. I've written something here.

Does it really work?

Depends. Sed actually doesn't tell me which line number is it currently executing, so I have to emulate parts of sed to guess that. Which might not be bulletproof. But it certainly worked good enough to debug tetris without issues.

Why sed??

Sed is the perfect programming language, especially for graph problems. It's plain and simple and doesn't clutter your screen with useless identifiers like if, for, while, or int. Furthermore since it doesn't have things like numbers, it's very simple to use.

But why?

I wanted to program in sed but it lacked good tooling up to this point, so I had to do something about it.

Why?

Because it's the standard stream editor for filtering and transforming text. And someone wrote tetris in it!

What is the roadmap for future updates?

I would like to introduce syntax highlighting and add this tool to standard repositories of all major distributions.

Is this a joke?

I thought it was. But apparently it's actually useful for some people.

Other projects