content: package com.rivescript.samples;/*
   * Copyright (c) 2016 the original author or authors.
   *
   * 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.
   */
  
  import com.rivescript.RiveScript;
  import com.rivescript.cmd.Shell;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.boot.Banner;
  import org.springframework.boot.CommandLineRunner;
  import org.springframework.boot.SpringApplication;
  import org.springframework.boot.SpringBootVersion;
  import org.springframework.boot.autoconfigure.SpringBootApplication;
  import org.springframework.context.annotation.Bean;
  import org.springframework.core.env.Environment;
  
  import java.io.PrintStream;
  
  /**
   * @author Marcel Overdijk
   */
  @SpringBootApplication
  public class Application {
  
  	@Bean
  	public ShellCommandLineRunner runner() {
  		return new ShellCommandLineRunner();
  	}
  
  	private static class ShellCommandLineRunner extends Shell implements CommandLineRunner {
  
  		@Autowired
  		private RiveScript bot;
  
  		@Override
  		public void run(String... args) {
  			run(bot);
  		}
  	}
  
  	public static void main(String[] args) {
  		SpringApplication app = new SpringApplication(Application.class);
  		app.setBanner(new Banner() {
  
  			@Override
  			public void printBanner(Environment environment, Class<?> sourceClass, PrintStream out) {
  				out.println(""
  						+ "      .   .       \n"
  						+ "     .:...::      RiveScript Interpreter (Java)\n"
  						+ "    .::   ::.     Library Version: " + RiveScript.getVersion() + "\n"
  						+ " ..:;;. ' .;;:..  Spring Boot Version: " + SpringBootVersion.getVersion() + "\n"
  						+ "    .  '''  .     \n"
  						+ "     :;,:,;:      \n"
  						+ "     :     :      \n");
  			}
  		});
  		app.run(args);
  	}
  }
  