All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eiichiro.gig.shell.Main Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (C) 2014 Eiichiro Uchiumi. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 *     
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.eiichiro.gig.shell;

import java.io.File;
import java.io.FileReader;

import org.apache.maven.model.Model;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.project.MavenProject;
import org.eiichiro.ash.Colors;
import org.eiichiro.ash.Console;
import org.eiichiro.ash.Shell;
import org.eiichiro.reverb.system.Environment;

/**
 * {@code Main}
 * 
 * @author Eiichiro Uchiumi
 */
public class Main {

	/**
	 * @param args
	 * @throws Exception 
	 */
	public static void main(String[] args) throws Exception {
		Shell shell = new Shell();
		shell.register(new Quit(shell));
		shell.register(new Exit(shell));
		shell.register(new Help(shell));
		shell.register(new Hint(shell));
		Console console = shell.console();
		console.println(Colors.blue("  ____ _"));
		console.println(Colors.blue(" / ___(_) __ _"));
		console.println(Colors.blue("| |  _| |/ _` |"));
		console.println(Colors.blue("| |_| | | (_| |"));
		console.println(Colors.blue(" \\____|_|\\__, |"));
		console.println(Colors.blue("         |___/"));
		console.println("");
		console.println(Colors.blue("Gig Shell " + Version.MAJOR + "."
				+ Version.MINER + "." + Version.BUILD
				+ " (Experimental Beta) http://gig.eiichiro.org/"));
		console.println("");
		console.println(Colors.blue("Welcome to Gig. Hit the TAB or press 'hint' to display available commands."));
		console.println(Colors.blue("Press 'help command' to display the detailed information for the command."));
		console.println(Colors.blue("Press 'quit' or 'exit' to exit this session. Enjoy!"));
		console.println("");
		String dir = Environment.getProperty("user.dir");
		File pom = new File(dir + File.separator + "pom.xml");
		String prompt = "gig";
		
		if (pom.exists()) {
			MavenXpp3Reader reader = new MavenXpp3Reader();
			Model model = reader.read(new FileReader(pom));
			MavenProject project = new MavenProject(model);
			String artifactId = project.getArtifactId();
			String version = project.getVersion();
			prompt = prompt + Colors.yellow(":[" + artifactId + "-" + version + "]");
			File gig = new File(dir + File.pathSeparator + ".gig");
			
			if (!gig.exists()) {
				gig.mkdir();
			}
			
			shell.register(new Scan(shell));
		}
		
		console.prompt(prompt + "> ");
		shell.start();
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy