Instead of a single executable rew with all of the filtering functionality, let's split the project into more smaller cli tools, where every tool does one separate thing.
- Previous filters will be implemented as separate
rew subcommands. For example:
t filter becomes rew trim [-s|--start] [-e|--end] subcommand.
r filter becomes rew replace <what> [replacement] subcommand.
c filter becomes rew seq subcommand.
C filter becomes rew parent | rew count where parent subcommand prints parent directory and count subcommand print number of occurrences of input lines.
- Pipeline composition will be done using
rew x subcommand:
- Former usage:
rew 'img_{C}.{e|l|r:e}'
- New usage:
rew 'img_{seq}.{ext | lower | replace e}'
rew will run {a | b | ...c} pipelines in separate threads
- Every pipeline will consume/produce lines.
- Every subcommand will support
-0, --null flag to process NUL separated lines.
- There will be
REW_NULL environment variable to enable -0, --null behavior globally.
- Former cli options for custom input/output line separator will be implemented as a separate subcommands
split and join.
- Alternative output modes (diff/json lines) will not be supported anymore.
- Auxiliary
mvb/cpb tools will be dropped in favor of generation of executable shell code.
Instead of a single executable
rewwith all of the filtering functionality, let's split the project into more smaller cli tools, where every tool does one separate thing.rewsubcommands. For example:tfilter becomesrew trim [-s|--start] [-e|--end]subcommand.rfilter becomesrew replace <what> [replacement]subcommand.cfilter becomesrew seqsubcommand.Cfilter becomesrew parent | rew countwhereparentsubcommand prints parent directory andcountsubcommand print number of occurrences of input lines.rew xsubcommand:rew 'img_{C}.{e|l|r:e}'rew 'img_{seq}.{ext | lower | replace e}'rewwill run{a | b | ...c}pipelines in separate threads-0, --nullflag to process NUL separated lines.REW_NULLenvironment variable to enable-0, --nullbehavior globally.splitandjoin.mvb/cpbtools will be dropped in favor of generation of executable shell code.