]> git.armaanb.net Git - gen-shell.git/commitdiff
added more CLI options!
authorArmaan Bhojwani <3fb650a9-b47e-4604-a282-1dd91953b2ee@anonaddy.me>
Thu, 5 Nov 2020 20:00:33 +0000 (15:00 -0500)
committerArmaan Bhojwani <3fb650a9-b47e-4604-a282-1dd91953b2ee@anonaddy.me>
Thu, 5 Nov 2020 20:00:33 +0000 (15:00 -0500)
.gitignore
cmake.h [deleted file]
src/main.cpp

index 6010c67c748ea77c92cedc51b89589bb31599ef9..e64a8f60f3975800830456ba8a0d7904c9b16077 100644 (file)
@@ -36,3 +36,4 @@ commit.h.in
 .directory
 .Trash-*
 .nfs*
 .directory
 .Trash-*
 .nfs*
+cmake.h
diff --git a/cmake.h b/cmake.h
deleted file mode 100644 (file)
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 */
-
index 3d0e2c65d6d3c9e5fed8eadc22a129743b3f9328..a570cdd792821bfee3f38891b4a2f919c4d41f19 100644 (file)
@@ -39,7 +39,6 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 using namespace std;
 ////////////////////////////////////////////////////////////////////////////////
 
 using namespace std;
-std::string promptCompose();
 
 static std::vector <std::string> contexts;
 std::string composeContexts (bool pretty = false);
 
 static std::vector <std::string> contexts;
 std::string composeContexts (bool pretty = false);
@@ -64,11 +63,6 @@ int promptAdd (const std::string& context)
   return 0;
 }
 
   return 0;
 }
 
-std::string promptCompose ()
-{
-  return "% ";
-}
-
 ////////////////////////////////////////////////////////////////////////////////
 
 const std::string getResponse(const std::string & prompt) {
 ////////////////////////////////////////////////////////////////////////////////
 
 const std::string getResponse(const std::string & prompt) {
@@ -110,10 +104,13 @@ int main(int argc, char** argv)
   // Command line arguments
   Sarge sarge;
 
   // 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("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 <options> <command>");
+       sarge.setArgument("p", "prompt", "Define a custom prompt", true);
+       sarge.setDescription("Make a shell from any executable");
+       sarge.setUsage("gen-shell <options>");
 
        if (!sarge.parseArguments(argc, argv)) {
                std::cerr << "Couldn't parse arguments..." << std::endl;
 
        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;
        }
 
     return 0;
        }
 
+  // define input command
   string arg_cmd;
   string arg_cmd;
-  sarge.getFlag("cmd", arg_cmd);
+  sarge.getFlag("command", arg_cmd);
   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) {
   // Main program
   while (true) {
-    // Compose the prompt
-    auto prompt = promptCompose();
-
     // Display prompt, get input
     auto command = getResponse(prompt);
 
     // Display prompt, get input
     auto command = getResponse(prompt);
 
@@ -142,6 +155,7 @@ int main(int argc, char** argv)
       // Dispatch command
       if (command == "<EOF>")
       {
       // Dispatch command
       if (command == "<EOF>")
       {
+        system (after_command.c_str ());
         return 0;
       }
       else if (command != "")
         return 0;
       }
       else if (command != "")