Skip to content

Commit 4ef6747

Browse files
committed
Update Boilerplate scripts
1 parent 03c8df7 commit 4ef6747

4 files changed

Lines changed: 19 additions & 2 deletions

File tree

‎src/main/java/sc/fiji/snt/gui/ScriptInstaller.java‎

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import java.util.List;
4545
import java.util.*;
4646
import java.util.concurrent.Future;
47+
import java.util.regex.Matcher;
4748
import java.util.regex.Pattern;
4849
import java.util.stream.Collectors;
4950

@@ -54,6 +55,10 @@
5455
*/
5556
public class ScriptInstaller implements MenuKeyListener {
5657

58+
/** Matches requireVersion("x.y.z") calls (any quoted version string) in boilerplate scripts. */
59+
private static final Pattern REQUIRE_VERSION_PATTERN = Pattern
60+
.compile("(requireVersion\\(\\s*\")[^\"]*(\"\\s*\\))");
61+
5762
@Parameter
5863
private Context context;
5964

@@ -541,7 +546,16 @@ public static String getBoilerplateScript(final String extension) {
541546
final InputStream is = classloader.getResourceAsStream("script_templates/Neuroanatomy/Boilerplate/"
542547
+ getBoilerPlateFile(extension));
543548
assert is != null;
544-
return new BufferedReader(new InputStreamReader(is)).lines().collect(Collectors.joining("\n"));
549+
final String script = new BufferedReader(new InputStreamReader(is)).lines().collect(Collectors.joining("\n"));
550+
// Boilerplate files have a hardwired requireVersion() call: inject the running SNT version so templates don't
551+
// lag behind the release they were generated from
552+
final Matcher matcher = REQUIRE_VERSION_PATTERN.matcher(script);
553+
final StringBuilder sb = new StringBuilder();
554+
while (matcher.find()) {
555+
matcher.appendReplacement(sb, Matcher.quoteReplacement(matcher.group(1) + SNTUtils.VERSION + matcher.group(2)));
556+
}
557+
matcher.appendTail(sb);
558+
return sb.toString();
545559
}
546560

547561
public static boolean runScript(final String dir, final String file, final Map<String, Object> inputMap) {

‎src/main/resources/script_templates/Neuroanatomy/Boilerplate/BSH.bsh‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import sc.fiji.snt.analysis.sholl.*;
2121
import sc.fiji.snt.annotation.*;
2222
import sc.fiji.snt.io.*;
2323
import sc.fiji.snt.plugin.*;
24+
import sc.fiji.snt.tracing.auto.*;
2425
import sc.fiji.snt.util.*;
2526
import sc.fiji.snt.viewer.*;
2627

‎src/main/resources/script_templates/Neuroanatomy/Boilerplate/GVY.groovy‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import sc.fiji.snt.analysis.sholl.*
2121
import sc.fiji.snt.annotation.*
2222
import sc.fiji.snt.io.*
2323
import sc.fiji.snt.plugin.*
24+
import sc.fiji.snt.tracing.auto.*
2425
import sc.fiji.snt.util.*
2526
import sc.fiji.snt.viewer.*
2627

‎src/main/resources/script_templates/Neuroanatomy/Boilerplate/PY.py‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
from sc.fiji.snt.analysis import GroupedTreeStatistics, MultiTreeStatistics, NodeStatistics, TreeStatistics,\
1919
ConvexHullAnalyzer, PersistenceAnalyzer, ShollAnalyzer, StrahlerAnalyzer, NodeColorMapper,\
2020
TreeColorMapper, PathProfiler, PathStraightener, RoiConverter, SNTChart, SNTTable
21-
from sc.fiji.snt.tracing.auto import BinaryTracer
21+
from sc.fiji.snt.tracing.auto import AutoTraceConfig, AutoTracer, BinaryTracer, ComponentReconnector,\
22+
DiskBackedGWDTTracer, GWDTTracer, GWDTTracerFactory, SomaUtils, SparseGWDTTracer
2223
from sc.fiji.snt.analysis.graph import DirectedWeightedGraph
2324
from sc.fiji.snt.analysis.sholl.parsers import TreeParser
2425
from sc.fiji.snt.annotation import AllenCompartment, AllenUtils, VFBUtils, ZBAtlasUtils

0 commit comments

Comments
 (0)