package com.spencernetdevelopment.arguments;
import java.io.File;
import java.lang.String;
public class StaticPagesTerminal {
private static final boolean __showHelpOnNoArgs=true;
public static StaticPagesArguments getArguments(String[] args) throws Throwable {
File projectdir=null;
File newproject=null;
String assetprefixinbrowser=null;
String devassetprefixinbrowser=null;
boolean enablecompression=false;
boolean clean=false;
boolean enableassetfingerprinting=false;
boolean enabledevmode=false;
int maxdataurisizeinbytes=32768;
int maxwaittimetovalidateexternallink=5000;
boolean enableexternallinkvalidation=true;
String prefixtoignorefiles="_";
boolean enablelogginginfo=true;
boolean enableloggingwarn=true;
boolean enableloggingerror=true;
boolean enableloggingfatal=true;
boolean enableloggingdebug=false;
int logginglevel=0;
File variables=null;
if(__showHelpOnNoArgs && args.length == 0){
System.out.print(StaticPagesHelp.getHelpMenu());
System.exit(0);
}
int len = args.length;
int i=0;
for(;i+1<len;i+=2){
String key = args[i];
String val = args[i+1];
if("--project-dir".equals(key)){
String newPath = getPath(val);
projectdir = new File(newPath);
continue;
}
if("--new-project".equals(key)){
String newPath = getPath(val);
newproject = new File(newPath);
continue;
}
if("--asset-prefix-in-browser".equals(key)){
assetprefixinbrowser = val;
continue;
}
if("--dev-asset-prefix-in-browser".equals(key)){
devassetprefixinbrowser = val;
continue;
}
if("--enable-compression".equals(key)){
enablecompression = getBoolean(val);
continue;
}
if("--clean".equals(key)){
clean = getBoolean(val);
continue;
}
if("--enable-asset-fingerprinting".equals(key)){
enableassetfingerprinting = getBoolean(val);
continue;
}
if("--enable-dev-mode".equals(key)){
enabledevmode = getBoolean(val);
continue;
}
if("--max-data-uri-size-in-bytes".equals(key)){
maxdataurisizeinbytes = getInt(val);
continue;
}
if("--max-wait-time-to-validate-external-link".equals(key)){
maxwaittimetovalidateexternallink = getInt(val);
continue;
}
if("--enable-external-link-validation".equals(key)){
enableexternallinkvalidation = getBoolean(val);
continue;
}
if("--prefix-to-ignore-files".equals(key)){
prefixtoignorefiles = val;
continue;
}
if("--enable-logging-info".equals(key)){
enablelogginginfo = getBoolean(val);
continue;
}
if("--enable-logging-warn".equals(key)){
enableloggingwarn = getBoolean(val);
continue;
}
if("--enable-logging-error".equals(key)){
enableloggingerror = getBoolean(val);
continue;
}
if("--enable-logging-fatal".equals(key)){
enableloggingfatal = getBoolean(val);
continue;
}
if("--enable-logging-debug".equals(key)){
enableloggingdebug = getBoolean(val);
continue;
}
if("--logging-level".equals(key)){
logginglevel = getInt(val);
continue;
}
if("--variables".equals(key)){
String newPath = getPath(val);
variables = new File(newPath);
continue;
}
throw new IllegalArgumentException("Unknown argument: "+key);
}
if(i - len != 0){
throw new IllegalArgumentException("An even number of arguments must be given.");
}
return new StaticPagesArguments(
projectdir,
newproject,
assetprefixinbrowser,
devassetprefixinbrowser,
enablecompression,
clean,
enableassetfingerprinting,
enabledevmode,
maxdataurisizeinbytes,
maxwaittimetovalidateexternallink,
enableexternallinkvalidation,
prefixtoignorefiles,
enablelogginginfo,
enableloggingwarn,
enableloggingerror,
enableloggingfatal,
enableloggingdebug,
logginglevel,
variables
);
}
public static final String getPath(String path){
String pathToUse;
if(path.startsWith("/")){
pathToUse = path;
} else {
pathToUse = System.getProperty("user.dir")+"/"+path;
}
return pathToUse;
}
public static final boolean getBoolean(String bool){
if(bool != null){
String s = bool.toLowerCase();
if("true".equals(bool) || "yes".equals(bool) || "1".equals(bool)){
return true;
}
}
return false;
}
public static final int getInt(String in){
if(in != null && !in.isEmpty()){
return Integer.parseInt(in);
}
return 0;
}
}