]> git.armaanb.net Git - gen-shell.git/blobdiff - src/main.cpp
remove aliases
[gen-shell.git] / src / main.cpp
index 0d7a03412413b4ec790c1f64b06d8442df1d2c8d..392ecf96bee09ed63fc363efe947889e2901754a 100644 (file)
@@ -1,33 +1,11 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// Copyright 2006 - 2017, Paul Beckingham, Federico Hernandez, 2020 Armaan Bhojwani
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-//
-// http://www.opensource.org/licenses/mit-license.php
-//
-////////////////////////////////////////////////////////////////////////////////
+// gen-shell - the generic shell
+// Copyright (c) 2020, Armaan Bhojwani <code@armaanb.net>
 
 #include <cmake.h>
 #include <iostream>
 #include <../Sarge/src/sarge.h>
-#include <stdlib.h>
+#include <vector>
+#include <string>
 
 #ifdef HAVE_READLINE
   #include <readline/readline.h>
@@ -82,7 +60,7 @@ int main(int argc, char** argv)
   sarge.setArgument("c", "command", "Command to convert to shell", true);
   sarge.setArgument("h", "help", "Get help.", false);
   sarge.setArgument("p", "prompt", "Define a custom prompt", true);
-  sarge.setArgument("", "no-space", "Dont automatically add spaces after custom prompt and command", false);
+  sarge.setArgument("", "no-space", "Dont automatically add spaces after custom prompt and command", true);
   sarge.setDescription("Make a shell from any executable");
   sarge.setUsage("gen-shell <options>");
 
@@ -96,7 +74,7 @@ int main(int argc, char** argv)
     return 0;
        }
 
-  bool space;
+  bool space = true;
   if (sarge.exists("no-space")) {
     space = false;
        }
@@ -110,11 +88,12 @@ int main(int argc, char** argv)
   // Define prompt
   string prompt = "";
   sarge.getFlag("prompt", prompt);
-
   if ( prompt == "" )
+  {
     prompt = "% ";
-  if ( space )
+  } else if ( space ) {
     prompt += " ";
+  }
 
   // Execute before-command
   string before_command;
@@ -125,24 +104,17 @@ int main(int argc, char** argv)
   string after_command;
   sarge.getFlag("after", after_command);
 
-  // Main program
+  // Do the stuffs!
   while (true) {
-    // Display prompt, get input
     auto command = getResponse(prompt);
 
-    if (command != "")
+    if (command == "<EOF>" || command == "exit" || command == "quit" )
     {
-      // Dispatch command
-      if (command == "<EOF>")
-      {
-        system (after_command.c_str ());
-        return 0;
-      }
-      else if (command != "")
-      {
-        string whole_command = arg_cmd + command;
-        system (whole_command.c_str ());
-      }
+      system (after_command.c_str ());
+      return 0;
+    } else {
+      string whole_command = arg_cmd + command;
+      system (whole_command.c_str ());
     }
   }
 }