Skip to content

Releases: vextoly/no

v1.6

02 Jan 12:05
98d8864

Choose a tag to compare

no v1.6 Changelog

New Features

  • Multiple Output Support: -o/--output can now write to multiple files using tee.
  • 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 --calc options.
  • Applied filtering logic to skip unmatched items before output.
  • Integrated template file input into main processing.
  • Redirected multiple outputs using tee instead 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

02 Jan 10:04
b403402

Choose a tag to compare

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 --prefix and --suffix to wrap every output line in custom strings without needing a complex --format statement.

  • 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=value syntax alongside the traditional --flag value format.

  • 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

02 Jan 13:26
3f01a20

Choose a tag to compare

no v1.6-r1 Changelog

New Features

  • Add flag --unique: Ensures every output of no is unique.
  • Add flag --trim: Removes leading/trailing whitespace from output items.

Other Changes

  • New self-checks: Added new self-check flags because of the new flags, improving script reliability.

v1.4

31 Dec 17:38
3aed9e2

Choose a tag to compare

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

01 Jan 13:02
b30d787

Choose a tag to compare

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 -s or -t would 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 a check_arg helper to verify that value-dependent flags actually receive a valid argument before processing.

  • Separator Stability
    Fixed the parsing logic to ensure -s correctly 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 -cmd is present.

  • Test Suite Update
    Added "Command flag" test case to the --verify suite.

v1.3

31 Dec 15:28
4e462c4

Choose a tag to compare

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:1 counts 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

31 Dec 14:37
f0b81b4

Choose a tag to compare

  • Now supports --seq to generate numeric (1:10) or character (a:z) sequences
  • Now supports --step to set the increment value (supports decimals like 0.5)
  • Now supports --pad to zero-pad numeric output (e.g., --pad 3 becomes 001)
  • Now supports --precision to set fixed decimal places for numeric output

v1.1

31 Dec 13:48
a84011e

Choose a tag to compare

  • Now supports --command or -cmd to repeatedly execute a shell command and print its output
  • New TUI Installer

v1.0

31 Dec 13:14
e2945e9

Choose a tag to compare

  • Defaults: Prints n if 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

31 Dec 20:48
2a45269

Choose a tag to compare

Known Bugs in v4.1-fix

  • --command or -cmd flag won't work
  • --separator or -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 example 1.555) round consistently to the nearest cent/decimal across different operating systems.

Custom Kill Switch

  • Description: Integrated stty remapping 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 stdout streaming, 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.

Zero-Latency Interval

  • Description: Added fflush to the loop, ensuring output appears instantly even when using long --interval delays.

Validation Suite

  • Flag: --verify
  • Description: Introduced 51 automated tests covering negative sequences, hexadecimal formatting, and edge-case padding.