Skip to content
This repository has been archived by the owner on Jan 8, 2023. It is now read-only.

Commit

Permalink
Add custom line separation option
Browse files Browse the repository at this point in the history
  • Loading branch information
SpaiR committed Oct 29, 2018
1 parent e8c9c8b commit f72335a
Show file tree
Hide file tree
Showing 7 changed files with 75 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/main/checkstyle.xml
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@
<module name="FinalClass"/>
<module name="HideUtilityClassConstructor"/>
<module name="InterfaceIsType"/>
<module name="VisibilityModifier"/>
<!-- <module name="VisibilityModifier"/> -->

<!-- Miscellaneous other checks. -->
<!-- See http://checkstyle.sf.net/config_misc.html -->
Expand Down
7 changes: 7 additions & 0 deletions src/main/java/io/github/spair/jtgmerge/command/Clean.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@
import io.github.spair.dmm.io.TileLocation;
import io.github.spair.dmm.io.reader.DmmReader;
import io.github.spair.dmm.io.writer.DmmWriter;
import io.github.spair.jtgmerge.util.FileUtil;
import io.github.spair.jtgmerge.util.KeyGenerator;
import lombok.val;
import picocli.CommandLine.Mixin;
import picocli.CommandLine.Option;
import picocli.CommandLine.Parameters;

Expand Down Expand Up @@ -44,6 +46,9 @@ public class Clean implements Runnable {
arity = "0..*")
private String[] sanitizeVars = {};

@Mixin
private SeparatorOption separatorOption = new SeparatorOption();

private DmmData originalDmmData;
private DmmData modifiedDmmData;
private DmmData outputDmmData;
Expand Down Expand Up @@ -83,6 +88,8 @@ public void run() {
DmmWriter.saveAsByond(output, outputDmmData);
}

FileUtil.convertLineEndings(output, separatorOption.separator);

System.out.printf("Map '%s' successfully cleaned, output path: '%s'\n", modified.getName(), output.getPath());
}

Expand Down
7 changes: 7 additions & 0 deletions src/main/java/io/github/spair/jtgmerge/command/Convert.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

import io.github.spair.dmm.io.reader.DmmReader;
import io.github.spair.dmm.io.writer.DmmWriter;
import io.github.spair.jtgmerge.util.FileUtil;
import lombok.val;
import picocli.CommandLine.Command;
import picocli.CommandLine.Mixin;
import picocli.CommandLine.Option;
import picocli.CommandLine.Parameters;

Expand All @@ -24,6 +26,9 @@ public class Convert implements Runnable {
@Option(names = {"-f", "--format"}, description = "format to convert to (accepts 'tgm' or 'byond' as value)")
private String format;

@Mixin
private SeparatorOption separatorOption = new SeparatorOption();

@Override
public void run() {
val dmmData = DmmReader.readMap(mapFile);
Expand All @@ -43,6 +48,8 @@ public void run() {
System.exit(1);
}

FileUtil.convertLineEndings(mapFile, separatorOption.separator);

System.out.printf("Map '%s' successfully converted to '%s'\n", mapFile.getName(), format);
}
}
7 changes: 7 additions & 0 deletions src/main/java/io/github/spair/jtgmerge/command/Merge.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@
import io.github.spair.dmm.io.TileLocation;
import io.github.spair.dmm.io.reader.DmmReader;
import io.github.spair.dmm.io.writer.DmmWriter;
import io.github.spair.jtgmerge.util.FileUtil;
import io.github.spair.jtgmerge.util.KeyGenerator;
import lombok.val;
import picocli.CommandLine.Command;
import picocli.CommandLine.Mixin;
import picocli.CommandLine.Parameters;

import java.io.File;
Expand All @@ -31,6 +33,9 @@ public class Merge implements Runnable {
@Parameters(index = "2", paramLabel = "REMOTE", description = "file with remote map (map from remote brunch)")
private File remote;

@Mixin
private SeparatorOption separatorOption = new SeparatorOption();

private DmmData originDmmData;
private DmmData localDmmData;
private DmmData remoteDmmData;
Expand Down Expand Up @@ -67,6 +72,8 @@ public void run() {
DmmWriter.saveAsByond(local, resultDmmData);
}

FileUtil.convertLineEndings(local, separatorOption.separator);

System.out.println("Map merging successfully finished");
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package io.github.spair.jtgmerge.command;

import io.github.spair.jtgmerge.util.Separator;
import picocli.CommandLine.Option;

final class SeparatorOption {

@Option(names = {"--separator"}, description = "Separator to split lines. Accepts: ${COMPLETION-CANDIDATES}")
Separator separator = null;
}
27 changes: 27 additions & 0 deletions src/main/java/io/github/spair/jtgmerge/util/FileUtil.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package io.github.spair.jtgmerge.util;

import java.io.File;
import java.io.IOException;
import java.io.UncheckedIOException;
import java.nio.file.Files;
import java.nio.file.StandardOpenOption;

public final class FileUtil {

public static void convertLineEndings(final File file, final Separator separator) {
if (separator == null) {
return;
}

try {
String fileContent = new String(Files.readAllBytes(file.toPath()));
fileContent = fileContent.replace(System.lineSeparator(), separator.separator());
Files.write(file.toPath(), fileContent.getBytes(), StandardOpenOption.TRUNCATE_EXISTING);
} catch (IOException e) {
throw new UncheckedIOException(e);
}
}

private FileUtil() {
}
}
16 changes: 16 additions & 0 deletions src/main/java/io/github/spair/jtgmerge/util/Separator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package io.github.spair.jtgmerge.util;

import lombok.AllArgsConstructor;

@AllArgsConstructor
public enum Separator {

WIN("\r\n"),
NIX("\n");

private final String separatorChars;

public String separator() {
return separatorChars;
}
}

0 comments on commit f72335a

Please sign in to comment.