Applications

Command-line utility for Linux, macOS and Windows performing sophisticated search and replace followed by calling external executables. It can be considered a kind of JSON shell.

Key features:

  • reads multiple substitution rules from a JSON5 file with the extension .xnx (using the json5 package);
  • implements loops and conditional processing (if-then-else);
  • allows staged (chained) rules in .xnx files;
  • allows importing (embedding) other .xnx files into a given one (either entire or filtered with an XPATH query);
  • supports an application configuration file with the extension .xnxconfig that allows redefining all keywords (keys with special meaning in .xnx files);
  • calls any external executables after all placeholders (keys) are replaced with the final values.
  • has Azure DevOps extension in a separate project;
  • produces multiple configuration files from a single source based on rules;
  • produces Flutter application icons as multiple .png files for all platforms from two .svg files (foreground and background);
  • produces light and dark multi-dimensional icons from a single .svg file: .icns for macOS, and .ico for Windows;
  • natively supports decompression via the archive package for zip, tar, gz, bz2, Z;
  • performs search and replace with the multiple outputs in the MS Office files: .docx, .pptx, .xlsx (aka mail merge);
  • resolves environment variables in every rule;
  • allows passing arbitrary arguments to .xnx files;
  • resolves paths in every rule depending on OS it runs under;
  • light and dark theme implements in .xnx files commonly needed functions: trim, substr, regex match and replace, full path, file size, date/time math, and more...
blogspo

Command-line utility for Linux, macOS and Windows. Reads text from files, or stdin/pipe, or from files listed in stdin/pipe, then filters the content. Filtration is based on plain (literal) text strings and/or regular expressions that can be linked to each other by logical operators. The result can be optionally checked upon the number of matches being within the expected range.

Key features:

  • understands all major Unicode formats;
  • one or more glob patterns for input files;
  • input file paths can also be passed via stdin or a pipe;
  • plain and regular expression patterns;
  • logical operations on patterns: and, or, not;
  • multi-line search, and more...