////////////////////////////////////////////////////////////////////////////////
//
-// Copyright 2006 - 2017, Paul Beckingham, Federico Hernandez, 2020 Armaan Bhojwani
+// gen-shell, the generic shell
+//
+// 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
//
////////////////////////////////////////////////////////////////////////////////
+
#include <cmake.h>
#include <iostream>
#include <../Sarge/src/sarge.h>
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>");
return 0;
}
- bool space;
+ bool space = true;
if (sarge.exists("no-space")) {
space = false;
}
// Define prompt
string prompt = "";
sarge.getFlag("prompt", prompt);
-
if ( prompt == "" )
+ {
prompt = "% ";
- if ( space )
+ } else if ( space ) {
prompt += " ";
+ }
// Execute before-command
string before_command;
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 != "")
+ // Dispatch command
+ if (command == "<EOF>" || "exit" || "quit" || ":q" )
+ // if (command == "<EOF>" || command == "exit" )
{
- // 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 ());
}
}
}