From: Armaan Bhojwani <3fb650a9-b47e-4604-a282-1dd91953b2ee@anonaddy.me> Date: Thu, 5 Nov 2020 20:00:33 +0000 (-0500) Subject: added more CLI options! X-Git-Url: https://git.armaanb.net/?p=gen-shell.git;a=commitdiff_plain;h=e8d0a44ba528abc257a5f260922eff65b73bc5de added more CLI options! --- diff --git a/.gitignore b/.gitignore index 6010c67..e64a8f6 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,4 @@ commit.h.in .directory .Trash-* .nfs* +cmake.h diff --git a/cmake.h b/cmake.h deleted file mode 100644 index 4873a94..0000000 --- a/cmake.h +++ /dev/null @@ -1,60 +0,0 @@ -/* cmake.h.in. Creates cmake.h during a cmake run */ - -/* Product identification */ -#define PRODUCT_TASKSH 1 - -/* Package information */ -#define PACKAGE "" -#define VERSION "" -#define PACKAGE_BUGREPORT "" -#define PACKAGE_NAME "" -#define PACKAGE_TARNAME "" -#define PACKAGE_VERSION "" -#define PACKAGE_STRING "" - -#define CMAKE_BUILD_TYPE "" - -/* Localization */ -#define PACKAGE_LANGUAGE -#define LANGUAGE_ENG_USA - -/* git information */ -/* #undef HAVE_COMMIT */ - -/* cmake information */ -#define HAVE_CMAKE -#define CMAKE_VERSION "3.18.4" - -/* Compiling platform */ -#define LINUX -/* #undef DARWIN */ -/* #undef CYGWIN */ -/* #undef FREEBSD */ -/* #undef OPENBSD */ -/* #undef NETBSD */ -/* #undef HAIKU */ -/* #undef SOLARIS */ -/* #undef KFREEBSD */ -/* #undef GNUHURD */ -/* #undef UNKNOWN */ - -/* Found the Readline library */ -#define HAVE_READLINE - -/* Found the pthread library */ -/* #undef HAVE_LIBPTHREAD */ - -/* Found wordexp.h */ -/* #undef HAVE_WORDEXP */ - -/* Found tm.tm_gmtoff struct member */ -/* #undef HAVE_TM_GMTOFF */ - -/* Found st.st_birthtime struct member */ -/* #undef HAVE_ST_BIRTHTIME */ - -/* Functions */ -/* #undef HAVE_GET_CURRENT_DIR_NAME */ -/* #undef HAVE_TIMEGM */ -/* #undef HAVE_UUID_UNPARSE_LOWER */ - diff --git a/src/main.cpp b/src/main.cpp index 3d0e2c6..a570cdd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -39,7 +39,6 @@ //////////////////////////////////////////////////////////////////////////////// using namespace std; -std::string promptCompose(); static std::vector contexts; std::string composeContexts (bool pretty = false); @@ -64,11 +63,6 @@ int promptAdd (const std::string& context) return 0; } -std::string promptCompose () -{ - return "% "; -} - //////////////////////////////////////////////////////////////////////////////// const std::string getResponse(const std::string & prompt) { @@ -110,10 +104,13 @@ int main(int argc, char** argv) // Command line arguments Sarge sarge; + sarge.setArgument("a", "after", "Command to execute before leaving the shell", true); + sarge.setArgument("b", "before", "Command to execute before entering the shell", true); + sarge.setArgument("c", "command", "Command to convert to shell", true); sarge.setArgument("h", "help", "Get help.", false); - sarge.setArgument("c", "cmd", "Command to execute before entering the shell", true); - sarge.setDescription("Make a shell from any command"); - sarge.setUsage("gen-shell "); + sarge.setArgument("p", "prompt", "Define a custom prompt", true); + sarge.setDescription("Make a shell from any executable"); + sarge.setUsage("gen-shell "); if (!sarge.parseArguments(argc, argv)) { std::cerr << "Couldn't parse arguments..." << std::endl; @@ -125,15 +122,31 @@ int main(int argc, char** argv) return 0; } + // define input command string arg_cmd; - sarge.getFlag("cmd", arg_cmd); + sarge.getFlag("command", arg_cmd); arg_cmd += " "; + // define prompt + string prompt = ""; + sarge.getFlag("prompt", prompt); + + if ( prompt == "" ) + prompt = "% "; + else + prompt += " "; + + // execute before-command + string before_command; + sarge.getFlag("before", before_command); + system (before_command.c_str ()); + + // execute after-command + string after_command; + sarge.getFlag("after", after_command); + // Main program while (true) { - // Compose the prompt - auto prompt = promptCompose(); - // Display prompt, get input auto command = getResponse(prompt); @@ -142,6 +155,7 @@ int main(int argc, char** argv) // Dispatch command if (command == "") { + system (after_command.c_str ()); return 0; } else if (command != "")