import core.aws.env.Cloud;
import core.aws.env.Context;
import core.aws.env.Goal;
import core.aws.env.Param;
import core.aws.util.Asserts;
import core.aws.util.ClasspathResources;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
/**
* @author neo
*/
public class Main {
public static void main(String[] args) throws Throwable {
Main main = new Main(args);
main.execute();
}
private final Logger messageLogger = LoggerFactory.getLogger("message");
private final String[] args;
public Main(String[] args) {
this.args = args;
}
private void execute() throws Throwable {
if (args == null || args.length < 1) {
printHelp();
return;
}
Context context = new Context();
context.goal = Goal.parse(args[0]);
parseParams(context);
Cloud cloud = new Cloud(context);
cloud.execute();
}
private void parseParams(Context context) {
for (int i = 1, length = args.length; i < length; i++) {
String arg = args[i];
Asserts.isTrue(arg.startsWith("--") && arg.contains("="), "arg must be in --{name}={value} format, arg={}", arg);
int index = arg.indexOf('=');
Param key = Param.parse(arg.substring(2, index));
String value = arg.substring(index + 1);
context.param(key, value);
}
}
private void printHelp() throws IOException {
messageLogger.info(ClasspathResources.text("help.txt"));
}
}