package org.smartly.packages.sitebuilder; import org.json.JSONObject; import org.smartly.Smartly; import org.smartly.commons.util.FileUtils; import org.smartly.commons.util.JsonWrapper; import org.smartly.packages.AbstractPackage; import org.smartly.packages.htmlparser.SmartlyHtmlParser; import org.smartly.packages.sitebuilder.config.Deployer; import org.smartly.packages.sitebuilder.impl.model.ModelDeployer; import org.smartly.packages.velocity.SmartlyVelocity; /** * SmartlySiteBuilder is a site generator based on velocity template engine. */ public class SmartlySiteBuilder extends AbstractPackage { public static final String NAME = "smartly_sitebuilder"; public SmartlySiteBuilder() { super(NAME, 101); super.setDescription("Site Generator Module"); super.setMaintainerName("Gian Angelo Geminiani"); super.setMaintainerMail("angelo.geminiani@gmail.com"); super.setMaintainerUrl("http://www.smartfeeling.org"); //-- module dependencies --// super.addDependency(SmartlyVelocity.NAME, ""); // all versions super.addDependency(SmartlyHtmlParser.NAME, ""); // all versions //-- lib dependencies --// } // -------------------------------------------------------------------- // p r i v a t e // -------------------------------------------------------------------- @Override public void load() { Smartly.register(new Deployer(Smartly.getConfigurationPath())); } @Override public void ready() { this.init(); } // ------------------------------------------------------------------------ // p r i v a t e // ------------------------------------------------------------------------ private void init() { final JSONObject configuration = Smartly.getConfiguration().getJSONObject("sitebuilder"); _DOMAIN = JsonWrapper.getString(configuration, "domain"); _PATH_MODELS = JsonWrapper.getString(configuration, "models"); _PATH_OUTPUT = JsonWrapper.getString(configuration, "output"); _PATH_TEMPLATES = JsonWrapper.getString(configuration, "templates"); _ABSOLUTE_PATH_TEMPLATES = Smartly.getAbsolutePath(_PATH_TEMPLATES); _ABSOLUTE_PATH_OUTPUT = Smartly.getAbsolutePath(_PATH_OUTPUT); _ABSOLUTE_PATH_MODELS = Smartly.getAbsolutePath(_PATH_MODELS); // ensure dir exists try { FileUtils.mkdirs(_ABSOLUTE_PATH_TEMPLATES); FileUtils.mkdirs(_ABSOLUTE_PATH_OUTPUT); FileUtils.mkdirs(_ABSOLUTE_PATH_MODELS); } catch (Throwable ignored) { } // deploy models final ModelDeployer deployer = new ModelDeployer(_ABSOLUTE_PATH_MODELS); deployer.setOverwrite(true); deployer.deploy(); } // -------------------------------------------------------------------- // S T A T I C // -------------------------------------------------------------------- private static String _DOMAIN; private static String _PATH_MODELS; private static String _PATH_TEMPLATES; private static String _PATH_OUTPUT; private static String _ABSOLUTE_PATH_MODELS; private static String _ABSOLUTE_PATH_TEMPLATES; private static String _ABSOLUTE_PATH_OUTPUT; public static String getDomain() { return _DOMAIN; } public static String getPathModels() { return _PATH_MODELS; } public static String getPathTemplates() { return _PATH_TEMPLATES; } public static String getPathOutput() { return _PATH_OUTPUT; } public static String getAbsolutePathModels() { return _ABSOLUTE_PATH_MODELS; } public static String getAbsolutePathTemplates() { return _ABSOLUTE_PATH_TEMPLATES; } public static String getAbsolutePathOutput() { return _ABSOLUTE_PATH_OUTPUT; } }