X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=src%2Fmain.cpp;h=fa4bad3cc07418bc11af7ac30c746acdab166af3;hb=26b1d23d53c98fd02c3419d889ec852c1f0fc41c;hp=269d7394fe5868a86770ae7c9b7a53ac9b8c43f9;hpb=eb1e18ee5dc8235e48dd5184f60c13c33cad6add;p=gen-shell.git diff --git a/src/main.cpp b/src/main.cpp index 269d739..fa4bad3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -32,29 +32,14 @@ #include #include #include -#include #ifdef HAVE_READLINE #include #include #endif -// tasksh commands. -int cmdHelp (); -int cmdDiagnostics (); -int cmdReview (const std::vector &, bool); -int cmdShell (const std::vector &); std::string promptCompose (); -std::string findTaskwarrior (); -//////////////////////////////////////////////////////////////////////////////// -static void welcome () -{ - std::cout << PACKAGE_STRING << "\n"; - cmdHelp (); -} - -//////////////////////////////////////////////////////////////////////////////// const std::string getResponse (const std::string& prompt) { std::string response {""}; @@ -98,7 +83,6 @@ static int commandLoop (bool autoClear) // Display prompt, get input. auto command = getResponse (prompt); - // Obey Taskwarrior's rc.tasksh.autoclear. if (autoClear) std::cout << "\033[2J\033[0;0H"; @@ -109,25 +93,13 @@ static int commandLoop (bool autoClear) } else if (command != "") { - auto args = split (command, ' '); - // Dispatch command. - if (args[0] == "") status = -1; - else if (closeEnough ("exit", args[0], 3)) status = -1; - else if (closeEnough ("quit", args[0], 3)) status = -1; - else if (closeEnough ("help", args[0], 3)) status = cmdHelp (); - else if (closeEnough ("diagnostics", args[0], 3)) status = cmdDiagnostics (); - else if (closeEnough ("review", args[0], 3)) status = cmdReview (args, autoClear); - else if (closeEnough ("exec", args[0], 3) || - args[0][0] == '!') status = cmdShell (args); + if (command == "") status = -1; else if (command != "") { - command = "task " + command; + command = command; std::cout << "[" << command << "]\n"; system (command.c_str ()); - - // Deliberately ignoreѕ taskwarrior exit status, otherwise empty filters - // cause the shell to terminate. } } @@ -148,21 +120,15 @@ int main (int argc, const char** argv) { try { - // Get the Taskwarrior rc.tasksh.autoclear Boolean setting. bool autoClear = false; std::string input; std::string output; - execute ("task", {"_get", "rc.tasksh.autoclear"}, input, output); - output = lowerCase (output); autoClear = (output == "true\n" || output == "1\n" || output == "y\n" || output == "yes\n" || output == "on\n"); - if (isatty (fileno (stdin))) - welcome (); - while ((status = commandLoop (autoClear)) == 0) ; }