+++ /dev/null
-/* 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 */
-
////////////////////////////////////////////////////////////////////////////////
using namespace std;
-std::string promptCompose();
static std::vector <std::string> contexts;
std::string composeContexts (bool pretty = false);
return 0;
}
-std::string promptCompose ()
-{
- return "% ";
-}
-
////////////////////////////////////////////////////////////////////////////////
const std::string getResponse(const std::string & prompt) {
// 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 <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;
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);
// Dispatch command
if (command == "<EOF>")
{
+ system (after_command.c_str ());
return 0;
}
else if (command != "")