Add 'src/be/nikiroo/utils/' from commit '46add0670fdee4bd936a13fe2448c5e20a7ffd0a'
[fanfix.git] / src / be / nikiroo / utils / main / justify.java
diff --git a/src/be/nikiroo/utils/main/justify.java b/src/be/nikiroo/utils/main/justify.java
new file mode 100644 (file)
index 0000000..2a83389
--- /dev/null
@@ -0,0 +1,53 @@
+package be.nikiroo.utils.main;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Scanner;
+
+import be.nikiroo.utils.StringUtils;
+import be.nikiroo.utils.StringUtils.Alignment;
+
+/**
+ * Text justification (left, right, center, justify).
+ * 
+ * @author niki
+ */
+public class justify {
+       /**
+        * Syntax: $0 ([left|right|center|justify]) (max width)
+        * <p>
+        * <ul>
+        * <li>mode: left, right, center or full justification (defaults to left)</li>
+        * <li>max width: the maximum width of a line, or "" for "no maximum"
+        * (defaults to "no maximum")</li>
+        * </ul>
+        * 
+        * @param args
+        */
+       public static void main(String[] args) {
+               int width = -1;
+               StringUtils.Alignment align = Alignment.LEFT;
+
+               if (args.length >= 1) {
+                       align = Alignment.valueOf(args[0].toUpperCase());
+               }
+               if (args.length >= 2) {
+                       width = Integer.parseInt(args[1]);
+               }
+
+               Scanner scan = new Scanner(System.in);
+               scan.useDelimiter("\r\n|[\r\n]");
+               try {
+                       List<String> lines = new ArrayList<String>();
+                       while (scan.hasNext()) {
+                               lines.add(scan.next());
+                       }
+
+                       for (String line : StringUtils.justifyText(lines, width, align)) {
+                               System.out.println(line);
+                       }
+               } finally {
+                       scan.close();
+               }
+       }
+}