#include <cmake.h>
#include <iostream>
-#include <vector>
-#include <string>
#include <../Sarge/src/sarge.h>
#include <stdlib.h>
#ifdef HAVE_READLINE
-#include <readline/readline.h>
-#include <readline/history.h>
+ #include <readline/readline.h>
+ #include <readline/history.h>
#endif
////////////////////////////////////////////////////////////////////////////////
using namespace std;
-static std::vector <std::string> contexts;
-std::string composeContexts (bool pretty = false);
-
-int promptClear ()
-{
- contexts.clear ();
- return 0;
-}
-
-int promptRemove ()
-{
- if (contexts.size ())
- contexts.pop_back ();
-
- return 0;
-}
-
-int promptAdd (const std::string& context)
-{
- contexts.push_back (context);
- return 0;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
const std::string getResponse(const std::string & prompt) {
std::string response {
""
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("p", "prompt", "Define a custom prompt", true);
- sarge.setDescription("Make a shell from any executable");
- sarge.setUsage("gen-shell <options>");
+ 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("p", "prompt", "Define a custom prompt", true);
+ sarge.setArgument("", "no-space", "Dont automatically add spaces after custom prompt and command", false);
+ 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;
return 0;
}
- // define input command
+ bool space;
+ if (sarge.exists("no-space")) {
+ space = false;
+ }
+
+ // Define input command
string arg_cmd;
sarge.getFlag("command", arg_cmd);
- arg_cmd += " ";
+ if ( space )
+ arg_cmd += " ";
- // define prompt
+ // Define prompt
string prompt = "";
sarge.getFlag("prompt", prompt);
if ( prompt == "" )
prompt = "% ";
- else
+ if ( space )
prompt += " ";
- // execute before-command
+ // Execute before-command
string before_command;
sarge.getFlag("before", before_command);
system (before_command.c_str ());
- // execute after-command
+ // Execute after-command
string after_command;
sarge.getFlag("after", after_command);