Skip to content

Releases: sbracely/copy

v1.5

05 May 15:59

Choose a tag to compare

v1.5

Highlights

  • Improved CLI option parsing ergonomics by adding -o as the short form of --out-dir.
  • Strengthened path handling by adding test coverage for key scenarios, including absolute input paths and absolute output directories.

Detailed Changes

  1. Option and parsing improvements

    • CliArgumentParser now supports -o/--out-dir.
    • Refined option definitions and parsing order for better readability and consistency.
  2. Copy flow cleanup

    • Removed an unused parameter from CopyProcessor.copy(...) and simplified the related call chain.
    • No external behavior change; this is internal cleanup/refactoring.
  3. Stronger test coverage

    • Added and updated MainTest cases covering:
      • -o short option support
      • Copying with absolute input paths
      • Writing output to absolute output directories
    • Improved validation of copy behavior under option/path combinations.

v1.4

04 May 10:54

Choose a tag to compare

v1.4

Highlights

  • Refactored app entry flow from monolithic Main.java into modular components:
    • CopyCli
    • CliArgumentParser
    • CopyProcessor
    • OutputPathResolver
    • CopyOptions, CopyCliException, ExitCodes
  • Added support for copying multiple input paths in one command.
  • Migrated CLI argument parsing to commons-cli 1.11.
  • Improved directory output mapping and logging consistency.
  • Improved test coverage for CLI and copy behaviors.

Behavioral changes

  • Current CLI options are simplified to:
    • -h, --help
    • --out-dir <dir>
  • Output naming strategy is unified to indexed naming ((1), (2), ...).

Build and packaging

  • Maven build updates and shade configuration improvements.
  • Release version updated to 1.4.

v1.3

03 May 09:38

Choose a tag to compare

v1.3

Highlights

v1.3 focuses on simplifying the tool, improving reliability, and making behavior easier to integrate in scripts.

What's Changed

  1. Improved application flow and error handling

    • Refactored Main into clearer internal steps (input parsing, output path generation, copy execution).
    • Added explicit non-zero exit codes for failure scenarios to support automation:
      • 2: invalid input/argument error
      • 3: I/O error
  2. Migrated logging to JDK built-in JUL

    • Replaced direct System.out/System.err usage with java.util.logging (JUL).
    • Logging now uses levels such as INFO, WARNING, and SEVERE.
  3. Added baseline tests

    • Added tests for:
      • single-file copy
      • directory copy
      • invalid path handling
  4. Documentation updates

    • Updated usage examples to match current behavior.
    • Added notes for output naming and conflict/overwrite behavior.