Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/keenwrite.git
src/main/java/com/keenwrite/commands/ConcatenateCommand.java
package com.keenwrite.commands;
+import com.keenwrite.io.SysFile;
import com.keenwrite.util.AlphanumComparator;
import com.keenwrite.util.RangeValidator;
mExtension = extension;
mRange = range;
+ }
+
+ public static int toDigits( final String filename, final int fallback ) {
+ final var stripped = filename.replaceAll( "\\D", "" );
+
+ return stripped.isEmpty() ? fallback : Integer.parseInt( stripped );
}
public String call() throws IOException {
- final var glob = "**/*." + mExtension;
+ final var glob = STR."**/*.\{mExtension}";
final var files = new ArrayList<Path>();
final var text = new StringBuilder( DOCUMENT_LENGTH );
final var chapter = new AtomicInteger();
final var eol = lineSeparator();
-
final var validator = new RangeValidator( mRange );
walk( mParent, glob, files::add );
files.sort( new AlphanumComparator<>() );
files.forEach( file -> {
try {
- if( validator.test( chapter.incrementAndGet() ) ) {
+ final var filename = SysFile.getFileName( file );
+ final var digits = toDigits( filename, chapter.incrementAndGet() );
+
+ if( validator.test( digits ) ) {
clue( "Main.status.export.concat", file );
src/main/java/com/keenwrite/util/FileWalker.java
final Path path, final String glob, final Consumer<Path> c )
throws IOException {
- final var matcher = getDefault().getPathMatcher( "glob:" + glob );
+ final var matcher = getDefault().getPathMatcher( STR."glob:\{glob}" );
try( final var walk = Files.walk( path, 10 ) ) {

Adds digit extraction fallback for concatenating files

Author DaveJarvis <email>
Date 2024-10-03 17:19:10 GMT-0700
Commit deeb0b7155d891b5850f91ea3726a6be09b53ff8
Parent f2289d8
Delta 13 lines added, 4 lines removed, 9-line increase