Releases: vextoly/no
v1.6
no v1.6 Changelog
New Features
- Multiple Output Support:
-o/--outputcan now write to multiple files usingtee. - Filtering: Added
--filter <regex>to only print items matching a regular expression. - Arithmetic Operations: Added
--calc <op>to perform numeric calculations on outputs (e.g.,+5,*2,/2). - Template Input: Added
--template <file>to use file contents as input for processing. - Advanced Styling: Introduced
--style <opts>for multiple formatting options:bold,underline,italic,dim, color names, or hex codes (#RRGGBB).
Processing & Logic Enhancements
- Sequence handling adjusted when filtering is active to ensure correct number of outputs.
- Template files are read line by line and merged into the processing sequence.
- Arithmetic operations and filters applied within the main output loop.
- Styling logic now supports multiple simultaneous options, including hex colors and combined styles.
Test Suite Additions
- New tests for filtering: Basic, regex matching, and empty result scenarios.
- New tests for arithmetic operations: addition, subtraction, multiplication, division, and sequence operations.
- New tests for advanced styling: bold, underline, hex colors, mixed styles, and combined style + case transformations.
- New tests for template input and template formatting.
Code & Awk Logic Changes
- Added Awk variables:
style_str,filter_rx,calc_op,tpl_file. - Implemented hex color parsing and combined style handling.
- Added numeric operation evaluation for
--calcoptions. - Applied filtering logic to skip unmatched items before output.
- Integrated template file input into main processing.
- Redirected multiple outputs using
teeinstead of a single file or stdout.
Backwards Compatibility
- All existing options (
--seq,--pad,--step,--width,--prefix,--suffix,--case,--count, etc.) remain fully functional. - Legacy behavior preserved for sequences, static text output, random selection, and formatting.
Other Changes
- New self-checks: Added new self-check flags because of the new flags, improving script reliability.
v1.5
no v1.5 Changelog
New Core Flags
-
Jitter (
-j,--jitter): Adds a random delay between 0 and N seconds on top of the existing interval. This prevents perfectly rhythmic output and helps simulate more natural, varied timing. -
Header (
--header): Allows the user to specify a string that is printed exactly once at the very beginning of the execution. Ideal for creating CSV headers or section titles. -
Case Transformation (
--case): Processes the output text through one of three filters:upper: Converts all text to uppercase.lower: Converts all text to lowercase.swap: Inverts the case of every letter (e.g., Hello becomes hELLO).
-
ANSI Color (
--color): Adds color to the output. Supported colors include red, green, blue, yellow, cyan, and magenta. The script automatically handles the escape code reset at the end of each line.
Formatting Enhancements
-
Prefix & Suffix: Introduced
--prefixand--suffixto wrap every output line in custom strings without needing a complex--formatstatement. -
Alignment (
--width): Added a right-alignment feature. It pads the start of the output with spaces to ensure every line meets a minimum character width. -
Sequence Cycling (
--cycle): Sequences (both numeric and character) can now loop infinitely. When used with--times, the sequence will restart from the beginning once the end is reached. -
Sequence Skipping (
--skip): Allows the user to jump over the first N items of a sequence or repetition before printing begins.
Parsing & Logic Improvements
-
Key-Value Assignment: The script now supports the standard
--flag=valuesyntax alongside the traditional--flag valueformat. -
Bypass Delimiter (
--): Added support for the double-dash delimiter. Any arguments provided after--are treated as literal text, allowing you to print strings that start with dashes (e.g.,no -- --help). -
Kill Switch Update: The standard interrupt signal is now mapped to CTRL + E via
stty, allowing for a dedicated exit shortcut that cleans up terminal settings before closing.
Other Changes
- New self-checks: Added new self-check flags because of the new flags, improving script reliability.
v1.6-r1
v1.4
This release has major issues and is not ready for normal use. Please use v1.3, v1.4-fix2, or a later version.
New Features in no v1.4
Performance
- Massive speed increase by eliminating all subshells (awk, grep, sed, od) inside the execution loop.
- Direct I/O: Implemented exec file redirection to keep file handles open, significantly reducing disk I/O overhead.
Installer
- Added update check to installer
v1.4-fix2
Bug Fixes
-
Fixed Command Execution Flag (
-cmd,--command)
Users can now pass a shell command (for example-cmd "date +%T") which will be executed on every iteration. -
Resolved Argument Parsing Crashes
Fixed a bug where flags like-sor-twould cause the script to error out if they were placed at the end of the command line without an accompanying value. -
Improved Input Validation
Added acheck_arghelper to verify that value-dependent flags actually receive a valid argument before processing. -
Separator Stability
Fixed the parsing logic to ensure-scorrectly passes the custom separator string into the Awk processing engine.
Internal Improvements
-
Awk Logic Refinement
Restructured the internal value-selection loop to prioritize command execution over static text or sequences when-cmdis present. -
Test Suite Update
Added "Command flag" test case to the--verifysuite.
v1.3
New Features in no v1.3
Custom Formatting
- Flags:
-f,--format - Description: Allows printf-style output strings.
- Example:
Value: %s
Multi-Column Output
- Flag:
-cols - Description: Arrange sequence data into multiple columns or grids.
Advanced Delimiters
- Flags:
-s,--separator - Description: Use custom strings between items instead of just newlines.
Reverse Sequences
- Flag:
--seq - Description: Automatically handles descending counts and negative steps.
- Example:
--seq 5:1counts down from 5 to 1.
Multi-Character Sequences
- Description: Supports string patterns and advanced character ranges.
Extreme Floating-Point Sequences
- Description: Improved awk integration for large ranges or very small increments.
Enhanced Installer
- Description: Updated installation script for smoother setup and fewer errors.
v1.2
- Now supports
--seqto generate numeric (1:10) or character (a:z) sequences - Now supports
--stepto set the increment value (supports decimals like0.5) - Now supports
--padto zero-pad numeric output (e.g.,--pad 3becomes001) - Now supports
--precisionto set fixed decimal places for numeric output
v1.1
v1.0
- Defaults: Prints
nif no other input is given. --times/-t: Limit the number of repetitions (infinite by default).--interval/-i: Add delays between outputs.--count/-c: Prepend a counter to each output.--output/-o: Write the output to a file.--random/-r: Repeat random strings from a comma-separated list.
Note: To access the first Beta version of no, click here.
v1.4-fix
Known Bugs in v4.1-fix
--commandor-cmdflag won't work--separatoror-sflag won't work
New features in v1.4-fix
Core Engine Migration
- Description: Shifted logic from shell loops to an AWK-based engine, reducing execution time for large batches by up to 90%.
Precision Rounding
- Description: Implemented an epsilon-adjustment (
1e-10) to ensure floating-point values (for example1.555) round consistently to the nearest cent/decimal across different operating systems.
Custom Kill Switch
- Description: Integrated
sttyremapping to enable CTRL + E as an instant process termination hotkey, ensuring immediate return to the shell prompt.
Memory Efficiency
- Description: Eliminated internal string concatenation in favor of direct
stdoutstreaming, maintaining constant, low RAM usage regardless of iteration count.
Smart Separators
-
Description: Categorized separators into:
- Structural – delimiters such as
\n - Content – suffixes such as
,
This provides cleaner output for piped commands while still supporting CSV-style lists.
- Structural – delimiters such as
Zero-Latency Interval
- Description: Added
fflushto the loop, ensuring output appears instantly even when using long--intervaldelays.
Validation Suite
- Flag:
--verify - Description: Introduced 51 automated tests covering negative sequences, hexadecimal formatting, and edge-case padding.