prim/source/app.d
2023-08-09 16:01:15 -04:00

53 lines
910 B
D

import std.stdio;
import std.getopt;
import prim.opt;
import prompt.ps1;
import prompt.rps1;
import prompt.preexec;
import style;
import style.color;
void main(string[] argv) {
Opts opts;
GetoptResult args = getopt(
argv,
std.getopt.config.bundling,
"ps1|p", "print PS1", &opts.ps1,
"rps1|r", "print RPS1", &opts.rps1,
"preexec|x", "print preexec", &opts.preexec,
std.getopt.config.required,
"col", "terminal width", &opts.col,
std.getopt.config.required,
"row", "terminal height", &opts.row,
std.getopt.config.required,
"status", "previous command exit code", &opts.status,
);
if (args.helpWanted) {
defaultGetoptPrinter("prim", args.options);
}
dorun(opts);
}
void dorun(Opts opts) {
if (opts.ps1) {
ps1(opts).write();
}
if (opts.preexec) {
preexec(opts.col).write();
}
if (opts.rps1) {
rps1(opts).write();
}
}