aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2012-08-08 22:39:27 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-08-08 22:39:27 -0700
commita111f7ba0760dc9eb2e57b9cbd34254498cda093 (patch)
tree9de41f5b3dcdf562d6932675a1377bce12e484a3
parent73ea4dfe52771d6a85c474a45306314b9a945bea (diff)
parenta6d37f433628a331ed649ce78714258da1abba19 (diff)
downloadlatinime-a111f7ba0760dc9eb2e57b9cbd34254498cda093.tar.gz
latinime-a111f7ba0760dc9eb2e57b9cbd34254498cda093.tar.xz
latinime-a111f7ba0760dc9eb2e57b9cbd34254498cda093.zip
am a6d37f43: am ccd8ed53: Support stdin and stdout for compress/uncompress
* commit 'a6d37f433628a331ed649ce78714258da1abba19': Support stdin and stdout for compress/uncompress
-rw-r--r--tools/dicttool/src/android/inputmethod/latin/dicttool/Compress.java38
1 files changed, 22 insertions, 16 deletions
diff --git a/tools/dicttool/src/android/inputmethod/latin/dicttool/Compress.java b/tools/dicttool/src/android/inputmethod/latin/dicttool/Compress.java
index a76ec50e0..3cb0a12c4 100644
--- a/tools/dicttool/src/android/inputmethod/latin/dicttool/Compress.java
+++ b/tools/dicttool/src/android/inputmethod/latin/dicttool/Compress.java
@@ -46,46 +46,52 @@ public class Compress {
static public class Compressor extends Dicttool.Command {
public static final String COMMAND = "compress";
- private static final String SUFFIX = ".compressed";
+ public static final String STDIN_OR_STDOUT = "-";
public Compressor() {
}
public String getHelp() {
- return "compress <filename>: Compresses a file using gzip compression";
+ return COMMAND + " <src_filename> <dst_filename>: "
+ + "Compresses a file using gzip compression";
}
public void run() throws IOException {
- if (mArgs.length < 1) {
- throw new RuntimeException("Not enough arguments for command " + COMMAND);
+ if (mArgs.length > 2) {
+ throw new RuntimeException("Too many arguments for command " + COMMAND);
}
- final String inFilename = mArgs[0];
- final String outFilename = inFilename + SUFFIX;
- final FileInputStream input = new FileInputStream(new File(inFilename));
- final FileOutputStream output = new FileOutputStream(new File(outFilename));
+ final String inFilename = mArgs.length >= 1 ? mArgs[0] : STDIN_OR_STDOUT;
+ final String outFilename = mArgs.length >= 2 ? mArgs[1] : STDIN_OR_STDOUT;
+ final InputStream input = inFilename.equals(STDIN_OR_STDOUT) ? System.in
+ : new FileInputStream(new File(inFilename));
+ final OutputStream output = outFilename.equals(STDIN_OR_STDOUT) ? System.out
+ : new FileOutputStream(new File(outFilename));
copy(input, new GZIPOutputStream(output));
}
}
static public class Uncompressor extends Dicttool.Command {
public static final String COMMAND = "uncompress";
- private static final String SUFFIX = ".uncompressed";
+ public static final String STDIN_OR_STDOUT = "-";
public Uncompressor() {
}
public String getHelp() {
- return "uncompress <filename>: Uncompresses a file compressed with gzip compression";
+ return COMMAND + " <src_filename> <dst_filename>: "
+ + "Uncompresses a file compressed with gzip compression";
}
public void run() throws IOException {
- if (mArgs.length < 1) {
- throw new RuntimeException("Not enough arguments for command " + COMMAND);
+ if (mArgs.length > 2) {
+ throw new RuntimeException("Too many arguments for command " + COMMAND);
}
- final String inFilename = mArgs[0];
- final String outFilename = inFilename + SUFFIX;
- final FileInputStream input = new FileInputStream(new File(inFilename));
- final FileOutputStream output = new FileOutputStream(new File(outFilename));
+ final String inFilename = mArgs.length >= 1 ? mArgs[0] : STDIN_OR_STDOUT;
+ final String outFilename = mArgs.length >= 2 ? mArgs[1] : STDIN_OR_STDOUT;
+ final InputStream input = inFilename.equals(STDIN_OR_STDOUT) ? System.in
+ : new FileInputStream(new File(inFilename));
+ final OutputStream output = outFilename.equals(STDIN_OR_STDOUT) ? System.out
+ : new FileOutputStream(new File(outFilename));
copy(new GZIPInputStream(input), output);
}
}