summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.xml9
-rw-r--r--src/com/p4square/grow/GrowProcessComponent.java7
-rw-r--r--src/com/p4square/grow/backend/dynamo/DbTool.java58
3 files changed, 73 insertions, 1 deletions
diff --git a/build.xml b/build.xml
index ac675ae..625c4a6 100644
--- a/build.xml
+++ b/build.xml
@@ -22,6 +22,15 @@
</java>
</target>
+ <target name="server-prod" depends="compile">
+ <java classname="com.p4square.grow.GrowProcessComponent"
+ classpathref="classpath.run" fork="true">
+
+ <arg file="devfiles/grow-server.properties" />
+ <arg value="serverprod" />
+ </java>
+ </target>
+
<target name="frontend" depends="compile">
<java classname="com.p4square.grow.frontend.GrowFrontend"
classpathref="classpath.run" fork="true">
diff --git a/src/com/p4square/grow/GrowProcessComponent.java b/src/com/p4square/grow/GrowProcessComponent.java
index 7d0938e..9a7de6f 100644
--- a/src/com/p4square/grow/GrowProcessComponent.java
+++ b/src/com/p4square/grow/GrowProcessComponent.java
@@ -92,10 +92,15 @@ public class GrowProcessComponent extends Component {
// Load an optional config file from the first argument.
Config config = new Config();
config.setDomain("dev");
- if (args.length == 1) {
+ if (args.length >= 1) {
config.updateConfig(args[0]);
}
+ // Override domain
+ if (args.length == 2) {
+ config.setDomain(args[1]);
+ }
+
// Start the HTTP Server
final GrowProcessComponent component = new GrowProcessComponent(config);
component.getServers().add(Protocol.HTTP, 8085);
diff --git a/src/com/p4square/grow/backend/dynamo/DbTool.java b/src/com/p4square/grow/backend/dynamo/DbTool.java
index 5784f3e..c904844 100644
--- a/src/com/p4square/grow/backend/dynamo/DbTool.java
+++ b/src/com/p4square/grow/backend/dynamo/DbTool.java
@@ -5,6 +5,9 @@
package com.p4square.grow.backend.dynamo;
import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
@@ -47,6 +50,7 @@ public class DbTool {
System.out.println("\t--loadStrings <data> Load all videos and questions");
System.out.println("\t--destroy Drop all tables");
System.out.println("\t--addadmin <user> <pass> Add a backend account");
+ System.out.println("\t--import <table> <file> Backfill a table");
}
public static void main(String... args) {
@@ -107,6 +111,9 @@ public class DbTool {
} else if ("--addadmin".equals(args[offset])) {
offset = addAdmin(args, ++offset);
+ } else if ("--import".equals(args[offset])) {
+ offset = importTable(args, ++offset);
+
} else {
throw new IllegalArgumentException("Unknown command " + args[offset]);
}
@@ -270,6 +277,57 @@ public class DbTool {
return offset;
}
+ private static int importTable(String[] args, int offset) throws IOException {
+ String table = args[offset++];
+ String filename = args[offset++];
+
+ DynamoDatabase db = getDatabase();
+
+ List<String> lines = Files.readAllLines(new File(filename).toPath(),
+ StandardCharsets.UTF_8);
+
+ int count = 0;
+
+ String key = null;
+ Map<String, String> attributes = new HashMap<>();
+ for (String line : lines) {
+ if (line.length() == 0) {
+ if (attributes.size() > 0) {
+ db.putKey(DynamoKey.newKey(table, key), attributes);
+ count++;
+
+ if (count % 50 == 0) {
+ System.out.printf("Imported %d records into %s...\n", count, table);
+ }
+ }
+ key = null;
+ attributes = new HashMap<>();
+ continue;
+ }
+
+ if (key == null) {
+ key = line;
+ continue;
+ }
+
+ int space = line.indexOf(' ');
+ String attribute = line.substring(0, space);
+ String value = line.substring(space + 1);
+
+ attributes.put(attribute, value);
+ }
+
+ // Finish up the remaining attributes.
+ if (key != null && attributes.size() > 0) {
+ db.putKey(DynamoKey.newKey(table, key), attributes);
+ count++;
+ }
+
+ System.out.printf("Imported %d records into %s.\n", count, table);
+
+ return offset;
+ }
+
private static void insertQuestions(File baseDir) throws IOException {
DynamoDatabase db = getDatabase();
File questions = new File(baseDir, "questions");