Skip to content

Releases: mark-mcdermott/puravida

puravida 2.1.1

Choose a tag to compare

@mark-mcdermott mark-mcdermott released this 15 Jun 05:51

A small patch release.

Fixed

  • Leading-dash paths after -- now work (e.g. puravida -- -weird.txt). mkdir, touch, and dirname are invoked with -- so the name isn't parsed as options.

Full changelog: https://github.com/mark-mcdermott/puravida/blob/main/CHANGELOG.md

puravida 2.1.0

Choose a tag to compare

@mark-mcdermott mark-mcdermott released this 15 Jun 05:15

A maintenance release: a no-sudo install path, a guardrail for the ~~ marker, and a terminology cleanup.

Added

  • make install-user / make uninstall-user — a per-user install under ~/.local, no sudo required. The README now leads with this; sudo make install remains the system-wide option.

Changed

  • A ~~word argument (the content marker with no following space) now exits with a hint instead of silently creating a directory named ~~word.
  • Renamed "paste mode" to "multiline mode" across the docs, help text, and the ~-with-no-file error message.

Full changelog: https://github.com/mark-mcdermott/puravida/blob/main/CHANGELOG.md

puravida 2.0.0

Choose a tag to compare

@mark-mcdermott mark-mcdermott released this 15 Jun 03:23

A major release that redesigns puravida's argument grammar.

⚠️ Breaking change

Inline content now requires a ~~ marker, and each path argument creates its own file or directory.

puravida notes.txt ~~ hello        # write "hello" to notes.txt (was: notes.txt "hello")
puravida a.txt b.txt               # two files (was: a.txt containing "b.txt")

Changed

  • BREAKING: Redesigned the argument grammar.
    • Inline content now requires a ~~ marker — puravida notes.txt ~~ hello (previously puravida notes.txt "hello"). Content is everything after the first ~~, joined with spaces, and attaches to the most recently named file.
    • Multiple paths each create their own file (dotted leaf) or directory (dotless leaf), so puravida a.txt b.txt now creates two files (previously it wrote b.txt into a.txt).
    • A trailing / forces a directory, even on a dotted leaf (puravida .claude/).
    • A leading directory still contains the paths named after it, now supporting nested sub-paths with auto-created parents (puravida .claude/ settings.json commands/cmd.md).
  • Standardized the --help output to the conventional Usage: / Options: / Examples: layout, and removed the emoji from it.
  • Usage errors (no arguments, an unknown option, or ~~ with no preceding file) exit with code 2.

Added

  • -f/--file flag to force dotless names (e.g. Makefile, LICENSE) to be files.
  • Optional make install-pv target that symlinks pvpuravida.
  • A man page (man/puravida.1), installed by make install.
  • Synopsis, Options, and Exit status sections in the README.
  • Unknown options are now rejected with a clear error.

Removed

  • Inline content without the ~~ marker (quoted or bare) — see the breaking note. There is intentionally no -d flag; a trailing / forces a directory inline.

Full changelog: https://github.com/mark-mcdermott/puravida/blob/main/CHANGELOG.md

puravida 1.0.0

Choose a tag to compare

@mark-mcdermott mark-mcdermott released this 15 Jun 03:24

The first tagged release of puravida — a one-liner replacement for mkdir -p, touch, and here-documents.

Added

  • Inline file contents from a quoted argument, e.g. puravida dir/file.txt "hi".
  • -h/--help and --version flags.
  • bats-core test suite (test/puravida.bats).
  • Makefile with install, uninstall, test, and lint targets.
  • GitHub Actions CI: shellcheck (lint) and bats (tests on macOS and Linux).
  • Top-level MIT LICENSE file.

Changed

  • Quoted all variable expansions and enabled set -euo pipefail, so paths with spaces are handled correctly.
  • Paste mode now uses portable sed, so the tool runs on Linux as well as macOS.
  • Switched the tilde check to [[ ]] for safer, more idiomatic bash.
  • Renamed the script from puravida.sh to puravida and marked it executable.

Fixed

  • The tilde check no longer errors with too many arguments on multi-word second arguments.