summaryrefslogtreecommitdiff
path: root/source/app.d
diff options
context:
space:
mode:
Diffstat (limited to 'source/app.d')
-rw-r--r--source/app.d42
1 files changed, 39 insertions, 3 deletions
diff --git a/source/app.d b/source/app.d
index c3eec7f..25bb8e9 100644
--- a/source/app.d
+++ b/source/app.d
@@ -1,6 +1,42 @@
import std.stdio;
+import std.getopt;
-void main()
-{
- writeln("Edit source/app.d to start your project.");
+import prompt.ps1;
+
+struct Opt {
+ bool ps1;
+ bool rps1;
+
+ int col;
+ int row;
+}
+
+void validate(Opt opts) {
+ if (!opts.col || !opts.row)
+ throw new Exception("--col and --row required");
+}
+
+void main(string[] argv) {
+ Opt opts;
+
+ GetoptResult args = getopt(
+ argv,
+ std.getopt.config.bundling,
+ "ps1|p", "print PS1", &opts.ps1,
+ "rps1|r", "print RPS1", &opts.rps1,
+ "col", "terminal width", &opts.col,
+ "row", "terminal height", &opts.row,
+ );
+
+ if (args.helpWanted) {
+ defaultGetoptPrinter("prim", args.options);
+ }
+
+ try {
+ validate(opts);
+ } catch (Exception e) {
+ defaultGetoptPrinter(e.msg ~ "\n", args.options);
+ }
+
+ ps1(opts.col).write();
}