Can I get Pipecut? (Updated Jan 23rd, 2015)
A proof-of-concept version of Pipecut was demonstrated at MeetBSD California, on November 1st, 2014.
At this time, the author wants to clean up some portions of the code that were written quickly in order to be able to demonstrate functionality for the conference presentation. The code will be published at code.google.com/p/pipecut
Below is a list of outstanding code-cleanup tasks that he is working on, towards the first release. Time permitting, he hopes that will be before the end of 2014. Check back here for updates.
Version 1.2 - Updated January 23rd, 2015
Code cleanup - outstanding tasks
Bugs
- Some display corruption when external pipes fail in unexpected ways.
- Some display corruption (inconsistent curses behavior REVERSE vs DIM REVERSE)
- Crashes for some invalid regular expressions
Code cleanup
- Migrate rest of buffer handling to Peter Seebach's sz string library
Features
- Implement cut as internal utility
- Support output of Jupyter Project 'notebook' format, for documenting toolsets (I need it for examples on this website)
Tests
- Create regression test framework for at least libpipecut
- Consider adding regression tests for sz
Documentation
- Write manpage
- Create more content for website
Completed tasks since Nov 1st, 2014
Bugs
- Crash caused by very long line in input vs fixed buffer. Converted to sz 'string'
- Internal toolset state is invalid after parsing input from 'history | pipecut' (though blade text is correct)
- Current blade does not display while typing regex while in RE mode
Code cleanup
- Review consistency of variable and function naming
- Migrate some buffer handling to Peter Seebach's sz string library
- Seperate all data processing into libpipecut, distinct from UI code
- Wrap sz functions in 'Joel on Software' style 'Hungarian APP TypeFromType' defines. (c.f. Making Wrong Code Look Wrong)
Build framework
- Cleanup of makefiles
- Consideration of autoconf/automake
Features
- Support '|' command up to current blade so partial pipelines can be run externally.