class InteractiveShellClient {

	public void launchShell(final ShellConfiguration configuration) throws IOException {

		final Terminal terminal = configuration.buildTerminal();

		try (Interpreter interpreter = this.initializeInterpreter(terminal)) {
			final Shell shell = new Shell(interpreter);

			final LineReader lineReader = configuration.buildLineReader(terminal, shell.getCommands());
			final String prompt = configuration.buildPrompt(terminal);

			shell.run(lineReader, prompt);
		}
	}

}