77 lines
1.4 KiB
D
77 lines
1.4 KiB
D
import std.stdio;
|
|
import std.getopt;
|
|
|
|
import prim.opt;
|
|
|
|
import prompt.ps1;
|
|
import prompt.rps1;
|
|
import prompt.preexec;
|
|
|
|
import style;
|
|
import style.color;
|
|
|
|
Opts defaultOpts() {
|
|
Opts opts;
|
|
|
|
opts.pathlen = 3;
|
|
opts.pchar = "*";
|
|
|
|
return opts;
|
|
}
|
|
|
|
void printHelp(GetoptResult args) {
|
|
defaultGetoptPrinter("prim prompt:\n", args.options);
|
|
writeln("\nEnvironment:\n",
|
|
"\tNO_COLOR\tsee https://no-color.org");
|
|
}
|
|
|
|
void main(string[] argv) {
|
|
Opts opts = defaultOpts();
|
|
|
|
try {
|
|
|
|
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,
|
|
|
|
"pathlen", "set length of displayed path", &opts.pathlen,
|
|
"pchar", "override default prompt character", &opts.pchar,
|
|
);
|
|
|
|
if (args.helpWanted) {
|
|
printHelp(args);
|
|
}
|
|
} catch (Exception e) {
|
|
writeln(e.msg);
|
|
writeln("try '--help' for more information");
|
|
}
|
|
|
|
dorun(opts);
|
|
}
|
|
|
|
void dorun(Opts opts) {
|
|
if (opts.ps1) {
|
|
ps1(opts).write();
|
|
}
|
|
|
|
if (opts.preexec) {
|
|
preexec(opts).write();
|
|
}
|
|
|
|
if (opts.rps1) {
|
|
rps1(opts).write();
|
|
}
|
|
}
|