Skip to content
Snippets Groups Projects
Commit 2233d2bc authored by Eike Cochu's avatar Eike Cochu
Browse files

updated command line parsing + options, added make-release script

parent c868d263
No related branches found
No related tags found
No related merge requests found
...@@ -3,4 +3,6 @@ ...@@ -3,4 +3,6 @@
*.war *.war
*.class *.class
*.sublime-workspace *.sublime-workspace
.vagrant/ .vagrant/
\ No newline at end of file .release/
/*.tar.gz
\ No newline at end of file
#!/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
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
</listAttribute> </listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/> <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.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.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.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/> <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/>
......
package de.vipra.cmd; package de.vipra.cmd;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.DefaultParser; import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.HelpFormatter;
...@@ -12,20 +15,27 @@ public class CommandLineOptions { ...@@ -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 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 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 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 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 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 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 ALL = Option.builder("A").longOpt("all").desc("select all models (-S all)c").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 INDEX = Option.builder("i").longOpt("index").desc("create index for models").hasArgs().argName("[models...]")
public static final Option EDIT = Option.builder("E").longOpt("edit").desc("edit config of selected models").hasArgs().argName("models...") .optionalArg(true).build();
.build(); public static final Option REREAD = Option.builder("r").longOpt("reread").desc("reread generated models").hasArgs().argName("[models...]")
public static final Option PRINT = Option.builder("p").longOpt("print").desc("print model configuration").hasArgs().argName("models...").build(); .optionalArg(true).build();
public static final Option IMPORT = Option.builder("I").longOpt("import").desc("import data from json into selected models").hasArgs() public static final Option CREATE = Option.builder("C").longOpt("create").desc("create new models").hasArgs().argName("[models...]")
.argName("files...").build(); .optionalArg(true).build();
public static final Option MODEL = Option.builder("M").longOpt("model").desc("generate topics on selected models").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(); public static final Option SELECT = Option.builder("S").longOpt("select").desc("select models").hasArgs().argName("models...").build();
private final Options options; private final Options options;
...@@ -41,7 +51,20 @@ public class CommandLineOptions { ...@@ -41,7 +51,20 @@ public class CommandLineOptions {
} }
public void parse(final String[] args) throws ParseException { 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) { public boolean hasOption(final Option opt) {
...@@ -78,6 +101,9 @@ public class CommandLineOptions { ...@@ -78,6 +101,9 @@ public class CommandLineOptions {
} }
public String[] modelsToIndex() { public String[] modelsToIndex() {
final String[] models = getOptionValues(INDEX);
if (models != null && models.length > 0)
return models;
return selectedModels(); return selectedModels();
} }
...@@ -90,6 +116,9 @@ public class CommandLineOptions { ...@@ -90,6 +116,9 @@ public class CommandLineOptions {
} }
public String[] modelsToReread() { public String[] modelsToReread() {
final String[] models = getOptionValues(REREAD);
if (models != null && models.length > 0)
return models;
return selectedModels(); return selectedModels();
} }
...@@ -110,7 +139,10 @@ public class CommandLineOptions { ...@@ -110,7 +139,10 @@ public class CommandLineOptions {
} }
public String[] modelsToCreate() { public String[] modelsToCreate() {
return getOptionValues(CREATE); final String[] models = getOptionValues(CREATE);
if (models != null && models.length > 0)
return models;
return selectedModels();
} }
public boolean isDelete() { public boolean isDelete() {
...@@ -118,7 +150,10 @@ public class CommandLineOptions { ...@@ -118,7 +150,10 @@ public class CommandLineOptions {
} }
public String[] modelsToDelete() { public String[] modelsToDelete() {
return getOptionValues(DELETE); final String[] models = getOptionValues(DELETE);
if (models != null && models.length > 0)
return models;
return selectedModels();
} }
public boolean isEdit() { public boolean isEdit() {
...@@ -126,7 +161,10 @@ public class CommandLineOptions { ...@@ -126,7 +161,10 @@ public class CommandLineOptions {
} }
public String[] modelsToEdit() { public String[] modelsToEdit() {
return getOptionValues(EDIT); final String[] models = getOptionValues(EDIT);
if (models != null && models.length > 0)
return models;
return selectedModels();
} }
public boolean isPrint() { public boolean isPrint() {
...@@ -134,7 +172,10 @@ public class CommandLineOptions { ...@@ -134,7 +172,10 @@ public class CommandLineOptions {
} }
public String[] modelsToPrint() { public String[] modelsToPrint() {
return getOptionValues(PRINT); final String[] models = getOptionValues(PRINT);
if (models != null && models.length > 0)
return models;
return selectedModels();
} }
public boolean isImport() { public boolean isImport() {
...@@ -142,7 +183,10 @@ public class CommandLineOptions { ...@@ -142,7 +183,10 @@ public class CommandLineOptions {
} }
public String[] filesToImport() { public String[] filesToImport() {
return getOptionValues(IMPORT); final String[] models = getOptionValues(IMPORT);
if (models != null && models.length > 0)
return models;
return selectedModels();
} }
public boolean isModel() { public boolean isModel() {
...@@ -150,6 +194,9 @@ public class CommandLineOptions { ...@@ -150,6 +194,9 @@ public class CommandLineOptions {
} }
public String[] modelsToModel() { public String[] modelsToModel() {
final String[] models = getOptionValues(MODEL);
if (models != null && models.length > 0)
return models;
return selectedModels(); return selectedModels();
} }
......
...@@ -4,7 +4,6 @@ import java.io.File; ...@@ -4,7 +4,6 @@ import java.io.File;
import java.io.IOException; import java.io.IOException;
import com.fasterxml.jackson.core.JsonGenerationException; import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonMappingException;
import de.vipra.util.Config; import de.vipra.util.Config;
...@@ -24,12 +23,6 @@ public class CreateModelCommand implements Command { ...@@ -24,12 +23,6 @@ public class CreateModelCommand implements Command {
this.names = names; 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) private void createModel(final String name, final TopicModelConfig modelConfig, final File modelDir)
throws JsonGenerationException, JsonMappingException, IOException, DatabaseException { throws JsonGenerationException, JsonMappingException, IOException, DatabaseException {
modelConfig.setName(name); modelConfig.setName(name);
...@@ -60,13 +53,7 @@ public class CreateModelCommand implements Command { ...@@ -60,13 +53,7 @@ public class CreateModelCommand implements Command {
throw new Exception("invalid model name: " + name); throw new Exception("invalid model name: " + name);
final File modelDir = new File(config.getDataDirectory(), name); final File modelDir = new File(config.getDataDirectory(), name);
if (modelDir.exists()) { if (modelDir.exists()) {
try { ConsoleUtils.info("model already exists: " + name);
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);
continue; continue;
} }
if (!modelDir.mkdirs()) if (!modelDir.mkdirs())
......
...@@ -61,7 +61,7 @@ gulp.task('js', function() { ...@@ -61,7 +61,7 @@ gulp.task('js', function() {
}); });
gulp.task('js-rel', 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(concat('app.js'))
.pipe(ngannotate()) .pipe(ngannotate())
.pipe(gulp.dest('public/js')); .pipe(gulp.dest('public/js'));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment