Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/keenwrite.git
#!/usr/bin/env bash

# TODO: This file does not work with Picocli and there are other issues.
# TODO: Revisit after replacing Picocli and using FastR instead of Renjin.

MODULES="${JAVA_HOME}/jmods/"
LIBS=$(ls -1 ../libs/*jar | sed 's/\(.*\)/-libraryjars \1/g')

java -jar ../tex/lib/proguard.jar \
  -libraryjars "${MODULES}java.base.jmod/(!**.jar;!module-info.class)" \
  -libraryjars "${MODULES}java.desktop.jmod/(!**.jar;!module-info.class)" \
  -libraryjars "${MODULES}java.xml.jmod/(!**.jar;!module-info.class)" \
  -libraryjars "${MODULES}javafx.controls.jmod/(!**.jar;!module-info.class)" \
  -libraryjars "${MODULES}javafx.graphics.jmod/(!**.jar;!module-info.class)" \
  ${LIBS} \
  -injars ../build/libs/keenwrite.jar \
  -outjars ../build/libs/keenwrite-min.jar \
  -keep 'class com.keenwrite.** { *; }' \
  -keep 'class com.whitemagicsoftware.tex.** { *; }' \
  -keep 'class org.renjin.** { *; }' \
  -keep 'class picocli.** { *; }' \
  -keep 'interface picocli.** { *; }' \
  -keep 'class picocli.CommandLine { *; }' \
  -keep 'class picocli.CommandLine$* { *; }' \
  -keepattributes '*Annotation*, Signature, Exception' \
  -keepclassmembers 'class * extends java.util.concurrent.Callable {
      public java.lang.Integer call();
  }' \
  -keepclassmembers 'class * {
      @javax.inject.Inject <init>(...);
      @picocli.CommandLine$Option *;
  }' \
  -keepclassmembers 'class * extends java.lang.Enum {
      <fields>;
      public static **[] values();
      public static ** valueOf(java.lang.String);
  }' \
  -keepnames \
    'class org.apache.lucene.analysis.tokenattributes.KeywordAttributeImpl' \
  -dontnote \
  -dontwarn \
  -dontoptimize \
  -dontobfuscate