diff --git a/.gitignore b/.gitignore index 92222168397e2ebdfeea8e9e74ae0b36abd03c52..a73255afd1615af09b43eaad0a3b47f9bc3c9092 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,6 @@ *.war *.class *.sublime-workspace -.vagrant/ \ No newline at end of file +.vagrant/ +.release/ +/*.tar.gz \ No newline at end of file diff --git a/make-release.sh b/make-release.sh new file mode 100755 index 0000000000000000000000000000000000000000..8d4459fc9f159622d276c1978b0866eb3ac6a92e --- /dev/null +++ b/make-release.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +VERSION=$(git describe --tags --abbrev=0 2> /dev/null) +if [ $? -ne 0 ]; then + VERSION=$(git rev-parse --short HEAD 2> /dev/null) +fi + +if [ -z $VERSION ]; then + echo "could not get version" + exit 1 +fi + +DIR="$(dirname "$(readlink -f "$0")")" +REL_NAME="vipra-$VERSION" +REL="$DIR/$REL_NAME" + +rm -rf $REL $REL.tar.gz +mkdir -p $REL/vipra-backend $REL/vipra-cmd $REL/vipra-ui +cp -r $DIR/dtm_release $REL/dtm_release +find $REL -type f -name "*.o" -exec rm -f {} \; +rm -f $REL/dtm_release/dtm/main +cp $DIR/vipra-backend/target/vipra.war $REL/vipra-backend +cp $DIR/vipra-cmd/target/*.jar $REL/vipra-cmd/vipra.jar +cp -r $DIR/vipra-cmd/target/lib $REL/vipra-cmd/lib +cp -r $DIR/vipra-ui/public $REL/vipra-ui +cp $DIR/vipra $REL/vipra-cmd/vipra +cp $DIR/LICENSE $DIR/README.md $REL + +tar zcf $REL_NAME.tar.gz $REL_NAME +rm -rf $REL + +echo "$REL_NAME.tar.gz" +exit 0 \ No newline at end of file diff --git a/vipra-cmd/runcfg/CMD.launch b/vipra-cmd/runcfg/CMD.launch index 23d3254f3b652c3a87b318f3dbd0cb2636ee147d..bb49f0c227cd9feb1a48dc4db8f8ff5a9beabf34 100644 --- a/vipra-cmd/runcfg/CMD.launch +++ b/vipra-cmd/runcfg/CMD.launch @@ -11,7 +11,7 @@ </listAttribute> <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/> <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="de.vipra.cmd.Main"/> -<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-dl"/> +<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-CS test -C asd"/> <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="vipra-cmd"/> <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/> <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/> diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/CommandLineOptions.java b/vipra-cmd/src/main/java/de/vipra/cmd/CommandLineOptions.java index f75c615d0a3bbe569be0b0f8cac50905180f6fa8..4ce7824862b41f916a378c2c92f9b642ddf621f1 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/CommandLineOptions.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/CommandLineOptions.java @@ -1,5 +1,8 @@ package de.vipra.cmd; +import java.util.ArrayList; +import java.util.List; + import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.DefaultParser; import org.apache.commons.cli.HelpFormatter; @@ -12,20 +15,27 @@ public class CommandLineOptions { public static final Option CLEAR = Option.builder("c").longOpt("clear").desc("clear the database and models").build(); public static final Option DEBUG = Option.builder("d").longOpt("debug").desc("show debug information").build(); public static final Option HELP = Option.builder("h").longOpt("help").desc("show this help").build(); - public static final Option INDEX = Option.builder("i").longOpt("index").desc("create the search index on selected models").build(); public static final Option LIST = Option.builder("l").longOpt("list").desc("list available models").build(); - public static final Option REREAD = Option.builder("r").longOpt("reread").desc("reread generated models").build(); public static final Option SILENT = Option.builder("s").longOpt("silent").desc("suppress all output").build(); public static final Option TEST = Option.builder("t").longOpt("test").desc("test database connections").build(); - public static final Option ALL = Option.builder("A").longOpt("all").desc("select all models, short for -S all").build(); - public static final Option CREATE = Option.builder("C").longOpt("create").desc("create new models").hasArgs().argName("models...").build(); - public static final Option DELETE = Option.builder("D").longOpt("delete").desc("delete existing models").hasArgs().argName("models...").build(); - public static final Option EDIT = Option.builder("E").longOpt("edit").desc("edit config of selected models").hasArgs().argName("models...") - .build(); - public static final Option PRINT = Option.builder("p").longOpt("print").desc("print model configuration").hasArgs().argName("models...").build(); - public static final Option IMPORT = Option.builder("I").longOpt("import").desc("import data from json into selected models").hasArgs() - .argName("files...").build(); - public static final Option MODEL = Option.builder("M").longOpt("model").desc("generate topics on selected models").build(); + public static final Option ALL = Option.builder("A").longOpt("all").desc("select all models (-S all)c").build(); + + public static final Option INDEX = Option.builder("i").longOpt("index").desc("create index for models").hasArgs().argName("[models...]") + .optionalArg(true).build(); + public static final Option REREAD = Option.builder("r").longOpt("reread").desc("reread generated models").hasArgs().argName("[models...]") + .optionalArg(true).build(); + public static final Option CREATE = Option.builder("C").longOpt("create").desc("create new models").hasArgs().argName("[models...]") + .optionalArg(true).build(); + public static final Option DELETE = Option.builder("D").longOpt("delete").desc("delete existing models").hasArgs().argName("[models...]") + .optionalArg(true).build(); + public static final Option EDIT = Option.builder("E").longOpt("edit").desc("edit config of selected models").hasArgs().argName("[models...]") + .optionalArg(true).build(); + public static final Option PRINT = Option.builder("p").longOpt("print").desc("print model configuration").hasArgs().argName("[models...]") + .optionalArg(true).build(); + public static final Option IMPORT = Option.builder("I").longOpt("import").desc("import data for models").hasArgs().argName("[models...]") + .optionalArg(true).build(); + public static final Option MODEL = Option.builder("M").longOpt("model").desc("generate topics on models").hasArgs().argName("[models...]") + .optionalArg(true).build(); public static final Option SELECT = Option.builder("S").longOpt("select").desc("select models").hasArgs().argName("models...").build(); private final Options options; @@ -41,7 +51,20 @@ public class CommandLineOptions { } public void parse(final String[] args) throws ParseException { - cmd = new DefaultParser().parse(options, args); + cmd = new DefaultParser().parse(options, split(args)); + } + + private String[] split(final String[] args) { + final List<String> args2 = new ArrayList<>(); + for (String arg : args) { + if (arg.startsWith("-") && arg.length() > 2) { + for (char c : arg.substring(1, arg.length()).toCharArray()) + args2.add("-" + c); + } else { + args2.add(arg); + } + } + return args2.toArray(new String[args2.size()]); } public boolean hasOption(final Option opt) { @@ -78,6 +101,9 @@ public class CommandLineOptions { } public String[] modelsToIndex() { + final String[] models = getOptionValues(INDEX); + if (models != null && models.length > 0) + return models; return selectedModels(); } @@ -90,6 +116,9 @@ public class CommandLineOptions { } public String[] modelsToReread() { + final String[] models = getOptionValues(REREAD); + if (models != null && models.length > 0) + return models; return selectedModels(); } @@ -110,7 +139,10 @@ public class CommandLineOptions { } public String[] modelsToCreate() { - return getOptionValues(CREATE); + final String[] models = getOptionValues(CREATE); + if (models != null && models.length > 0) + return models; + return selectedModels(); } public boolean isDelete() { @@ -118,7 +150,10 @@ public class CommandLineOptions { } public String[] modelsToDelete() { - return getOptionValues(DELETE); + final String[] models = getOptionValues(DELETE); + if (models != null && models.length > 0) + return models; + return selectedModels(); } public boolean isEdit() { @@ -126,7 +161,10 @@ public class CommandLineOptions { } public String[] modelsToEdit() { - return getOptionValues(EDIT); + final String[] models = getOptionValues(EDIT); + if (models != null && models.length > 0) + return models; + return selectedModels(); } public boolean isPrint() { @@ -134,7 +172,10 @@ public class CommandLineOptions { } public String[] modelsToPrint() { - return getOptionValues(PRINT); + final String[] models = getOptionValues(PRINT); + if (models != null && models.length > 0) + return models; + return selectedModels(); } public boolean isImport() { @@ -142,7 +183,10 @@ public class CommandLineOptions { } public String[] filesToImport() { - return getOptionValues(IMPORT); + final String[] models = getOptionValues(IMPORT); + if (models != null && models.length > 0) + return models; + return selectedModels(); } public boolean isModel() { @@ -150,6 +194,9 @@ public class CommandLineOptions { } public String[] modelsToModel() { + final String[] models = getOptionValues(MODEL); + if (models != null && models.length > 0) + return models; return selectedModels(); } diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/option/CreateModelCommand.java b/vipra-cmd/src/main/java/de/vipra/cmd/option/CreateModelCommand.java index 320cc47e873047c5195e3d1156426bef233c469b..e029235085ae5fa63efbfcc5ea125c62f9a0c362 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/option/CreateModelCommand.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/option/CreateModelCommand.java @@ -4,7 +4,6 @@ import java.io.File; import java.io.IOException; import com.fasterxml.jackson.core.JsonGenerationException; -import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import de.vipra.util.Config; @@ -24,12 +23,6 @@ public class CreateModelCommand implements Command { this.names = names; } - private void restoreModelFromDir(final String name, final File modelDir) - throws JsonParseException, JsonMappingException, IOException, DatabaseException { - final TopicModelConfig modelConfig = TopicModelConfig.readFromFile(modelDir); - createModel(name, modelConfig, modelDir); - } - private void createModel(final String name, final TopicModelConfig modelConfig, final File modelDir) throws JsonGenerationException, JsonMappingException, IOException, DatabaseException { modelConfig.setName(name); @@ -60,13 +53,7 @@ public class CreateModelCommand implements Command { throw new Exception("invalid model name: " + name); final File modelDir = new File(config.getDataDirectory(), name); if (modelDir.exists()) { - try { - final TopicModelFull topicModel = dbTopicModels.getSingle(name); - if (topicModel != null) - throw new Exception("model with that name already exists: " + name); - } catch (final Exception e) {} - restoreModelFromDir(name, modelDir); - ConsoleUtils.info("model restored: " + name); + ConsoleUtils.info("model already exists: " + name); continue; } if (!modelDir.mkdirs()) diff --git a/vipra-ui/gulpfile.js b/vipra-ui/gulpfile.js index 9f8e6da50ca7f17b34422d683b204b313eeb77ed..168bf714915f8f9867b5e3f07c67d2b3b889fac0 100644 --- a/vipra-ui/gulpfile.js +++ b/vipra-ui/gulpfile.js @@ -61,7 +61,7 @@ gulp.task('js', function() { }); gulp.task('js-rel', function() { - gulp.src(['app/js/**/*.js', '!app/js/config.js', '!app/js/dev.js']) + gulp.src(['app/js/**/*.js', '!app/js/config.js']) .pipe(concat('app.js')) .pipe(ngannotate()) .pipe(gulp.dest('public/js'));